@etherisc/gif-next 0.0.2-ff8087d-237 → 0.0.2-ffa91a6-022
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 +77 -10
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1494 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +615 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1224 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1209 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +261 -331
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1580 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +868 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +829 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +318 -306
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1445 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2002 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1388 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1612 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2389 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +384 -2276
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +284 -82
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +534 -2908
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2036 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1406 -517
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +310 -361
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +153 -143
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3728 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -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/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
- 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 +223 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- 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 +938 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -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 +753 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +280 -198
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +234 -253
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/BasicPool.sol/BasicPool.json} +398 -262
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +223 -73
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → pool/IPoolComponent.sol/IPoolComponent.json} +321 -296
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +511 -358
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1006 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +879 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +740 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +415 -473
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +155 -135
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +338 -17
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +623 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +997 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +100 -62
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +951 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +483 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +291 -106
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +982 -137
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2018 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +362 -243
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +164 -86
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1337 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -141
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +686 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1556 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +60 -206
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +117 -142
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IComponentService.sol/IComponentService.json} +608 -788
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +23 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +154 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +74 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
- 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 +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -90
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +67 -102
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +617 -8
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → staking/IStaking.sol/IStaking.json} +673 -589
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1167 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +792 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1380 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +736 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -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 +398 -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 +203 -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 +317 -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/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -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 +241 -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 +204 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -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 +105 -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/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -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/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +704 -0
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +365 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +170 -0
- package/contracts/authorization/IAuthorization.sol +80 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
- package/contracts/distribution/Distribution.sol +244 -0
- package/contracts/distribution/DistributionService.sol +385 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +43 -0
- package/contracts/distribution/IDistributionService.sol +103 -0
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +78 -77
- package/contracts/instance/IInstanceService.sol +51 -30
- package/contracts/instance/Instance.sol +202 -224
- package/contracts/instance/InstanceAdmin.sol +450 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
- package/contracts/instance/InstanceReader.sol +366 -82
- package/contracts/instance/InstanceService.sol +317 -339
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +298 -0
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- package/contracts/instance/base/ObjectLifecycle.sol +113 -0
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -9
- package/contracts/instance/module/IComponents.sol +28 -19
- package/contracts/instance/module/IDistribution.sol +10 -8
- package/contracts/instance/module/IPolicy.sol +41 -33
- package/contracts/instance/module/IRisk.sol +4 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +154 -0
- package/contracts/oracle/OracleService.sol +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +173 -0
- package/contracts/pool/BasicPoolAuthorization.sol +76 -0
- package/contracts/pool/BundleService.sol +395 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +43 -46
- package/contracts/pool/IPoolComponent.sol +62 -0
- package/contracts/pool/IPoolService.sol +165 -0
- package/contracts/pool/Pool.sol +343 -0
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +755 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +274 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +56 -0
- package/contracts/product/ClaimService.sol +632 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
- package/contracts/{instance/service → product}/IApplicationService.sol +19 -29
- package/contracts/{instance/service → product}/IClaimService.sol +64 -19
- package/contracts/product/IPolicyService.sol +95 -0
- package/contracts/product/IPricingService.sol +40 -0
- package/contracts/product/IProductComponent.sol +62 -0
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +664 -0
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +309 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +467 -0
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +79 -40
- package/contracts/registry/IRegistry.sol +95 -30
- package/contracts/registry/IRegistryService.sol +34 -38
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +460 -197
- package/contracts/registry/RegistryAdmin.sol +258 -0
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +89 -130
- package/contracts/registry/RegistryServiceManager.sol +23 -32
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +517 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +331 -0
- package/contracts/registry/TokenRegistry.sol +261 -64
- package/contracts/shared/Component.sol +210 -0
- package/contracts/shared/ComponentService.sol +708 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +128 -0
- package/contracts/shared/ContractLib.sol +281 -0
- package/contracts/shared/IComponent.sol +58 -0
- package/contracts/shared/IComponentService.sol +112 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +4 -2
- package/contracts/shared/IPolicyHolder.sol +16 -21
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +12 -7
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
- package/contracts/shared/InstanceLinkedComponent.sol +195 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +34 -25
- package/contracts/shared/PolicyHolder.sol +20 -52
- package/contracts/shared/Registerable.sol +55 -24
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +33 -40
- package/contracts/shared/TokenHandler.sol +320 -13
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +175 -0
- package/contracts/staking/IStakingService.sol +172 -0
- package/contracts/staking/Staking.sol +546 -0
- package/contracts/staking/StakingLib.sol +281 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +180 -0
- package/contracts/staking/StakingService.sol +464 -0
- package/contracts/staking/StakingServiceManager.sol +45 -0
- package/contracts/staking/StakingStore.sol +606 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/{types → type}/Amount.sol +44 -3
- package/contracts/{types → type}/Blocknumber.sol +26 -3
- package/contracts/{types → type}/ClaimId.sol +6 -1
- package/contracts/{types → type}/Fee.sol +17 -16
- package/contracts/{types → type}/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/{types → type}/NftId.sol +21 -16
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +294 -0
- package/contracts/{types → type}/PayoutId.sol +10 -10
- package/contracts/{types → type}/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +75 -0
- package/contracts/type/RoleId.sol +182 -0
- package/contracts/type/Seconds.sol +101 -0
- package/contracts/type/Selector.sol +107 -0
- package/contracts/{types → type}/StateId.sol +41 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +16 -7
- package/contracts/{types → type}/UFixed.sol +40 -121
- package/contracts/{types → type}/Version.sol +58 -7
- package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
- package/package.json +12 -8
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1124
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -688
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1283
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -696
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1384
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -752
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1847
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -816
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1281
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -740
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1622
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -708
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
- package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -281
- 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/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -312
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- 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/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
- 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/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
- package/contracts/components/Component.sol +0 -272
- package/contracts/components/Distribution.sol +0 -285
- package/contracts/components/IComponent.sol +0 -90
- package/contracts/components/IDistributionComponent.sol +0 -71
- package/contracts/components/IPoolComponent.sol +0 -114
- package/contracts/components/IProductComponent.sol +0 -41
- package/contracts/components/Pool.sol +0 -302
- package/contracts/components/Product.sol +0 -372
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/Cloneable.sol +0 -51
- package/contracts/instance/InstanceAccessManager.sol +0 -527
- package/contracts/instance/ObjectManager.sol +0 -82
- package/contracts/instance/base/ComponentService.sol +0 -130
- package/contracts/instance/base/KeyValueStore.sol +0 -149
- package/contracts/instance/base/Lifecycle.sol +0 -120
- package/contracts/instance/module/IAccess.sol +0 -54
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -356
- package/contracts/instance/service/BundleService.sol +0 -385
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -443
- package/contracts/instance/service/DistributionService.sol +0 -432
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IDistributionService.sol +0 -101
- package/contracts/instance/service/IPolicyService.sol +0 -80
- package/contracts/instance/service/IPoolService.sol +0 -114
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -372
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -403
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -210
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/registry/ReleaseManager.sol +0 -324
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -157
- package/contracts/types/RiskId.sol +0 -43
- package/contracts/types/RoleId.sol +0 -97
- package/contracts/types/Seconds.sol +0 -54
- /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -1,432 +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 "../../instance/IInstance.sol";
|
6
|
-
import {InstanceAccessManager} from "../InstanceAccessManager.sol";
|
7
|
-
import {InstanceReader} from "../../instance/InstanceReader.sol";
|
8
|
-
import {ISetup} from "../../instance/module/ISetup.sol";
|
9
|
-
import {IPolicy} from "../module/IPolicy.sol";
|
10
|
-
|
11
|
-
import {Amount, AmountLib} from "../../types/Amount.sol";
|
12
|
-
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
13
|
-
import {Fee, FeeLib} from "../../types/Fee.sol";
|
14
|
-
import {PRODUCT_SERVICE_ROLE, DISTRIBUTION_OWNER_ROLE} from "../../types/RoleId.sol";
|
15
|
-
import {KEEP_STATE} from "../../types/StateId.sol";
|
16
|
-
import {ObjectType, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR} from "../../types/ObjectType.sol";
|
17
|
-
import {Version, VersionLib} from "../../types/Version.sol";
|
18
|
-
import {RoleId} from "../../types/RoleId.sol";
|
19
|
-
|
20
|
-
import {IVersionable} from "../../shared/IVersionable.sol";
|
21
|
-
import {Versionable} from "../../shared/Versionable.sol";
|
22
|
-
|
23
|
-
import {IService} from "../../shared/IService.sol";
|
24
|
-
import {Service} from "../../shared/Service.sol";
|
25
|
-
import {ComponentService} from "../base/ComponentService.sol";
|
26
|
-
import {InstanceService} from "../InstanceService.sol";
|
27
|
-
import {IComponent} from "../../components/IComponent.sol";
|
28
|
-
import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
|
29
|
-
import {IDistributionService} from "./IDistributionService.sol";
|
30
|
-
|
31
|
-
import {UFixed, UFixedLib} from "../../types/UFixed.sol";
|
32
|
-
import {DistributorType, DistributorTypeLib} from "../../types/DistributorType.sol";
|
33
|
-
import {ReferralId, ReferralStatus, ReferralLib} from "../../types/Referral.sol";
|
34
|
-
import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
|
35
|
-
import {Key32} from "../../types/Key32.sol";
|
36
|
-
import {IDistribution} from "../module/IDistribution.sol";
|
37
|
-
|
38
|
-
|
39
|
-
contract DistributionService is
|
40
|
-
ComponentService,
|
41
|
-
IDistributionService
|
42
|
-
{
|
43
|
-
using NftIdLib for NftId;
|
44
|
-
using TimestampLib for Timestamp;
|
45
|
-
using UFixedLib for UFixed;
|
46
|
-
using FeeLib for Fee;
|
47
|
-
using ReferralLib for ReferralId;
|
48
|
-
|
49
|
-
address internal _registryAddress;
|
50
|
-
|
51
|
-
function _initialize(
|
52
|
-
address owner,
|
53
|
-
bytes memory data
|
54
|
-
)
|
55
|
-
internal
|
56
|
-
initializer
|
57
|
-
virtual override
|
58
|
-
{
|
59
|
-
address initialOwner;
|
60
|
-
address registryAddress;
|
61
|
-
(registryAddress, initialOwner) = abi.decode(data, (address, address));
|
62
|
-
// TODO while DistributionService is not deployed in DistributionServiceManager constructor
|
63
|
-
// owner is DistributionServiceManager deployer
|
64
|
-
initializeService(registryAddress, address(0), owner);
|
65
|
-
registerInterface(type(IDistributionService).interfaceId);
|
66
|
-
}
|
67
|
-
|
68
|
-
function getDomain() public pure override returns(ObjectType) {
|
69
|
-
return DISTRIBUTION();
|
70
|
-
}
|
71
|
-
|
72
|
-
function register(address distributionAddress)
|
73
|
-
external
|
74
|
-
returns(NftId distributionNftId)
|
75
|
-
{
|
76
|
-
(
|
77
|
-
IComponent component,
|
78
|
-
address owner,
|
79
|
-
IInstance instance,
|
80
|
-
NftId instanceNftId
|
81
|
-
) = _checkComponentForRegistration(
|
82
|
-
distributionAddress,
|
83
|
-
DISTRIBUTION(),
|
84
|
-
DISTRIBUTION_OWNER_ROLE());
|
85
|
-
|
86
|
-
IRegistry.ObjectInfo memory distributionInfo = getRegistryService().registerDistribution(component, owner);
|
87
|
-
IDistributionComponent distribution = IDistributionComponent(distributionAddress);
|
88
|
-
distribution.linkToRegisteredNftId();
|
89
|
-
distributionNftId = distributionInfo.nftId;
|
90
|
-
|
91
|
-
instance.createDistributionSetup(distributionNftId, distribution.getSetupInfo());
|
92
|
-
// TODO move to distribution?
|
93
|
-
bytes4[][] memory selectors = new bytes4[][](2);
|
94
|
-
selectors[0] = new bytes4[](1);
|
95
|
-
selectors[1] = new bytes4[](2);
|
96
|
-
|
97
|
-
selectors[0][0] = IDistributionComponent.setFees.selector;
|
98
|
-
selectors[1][0] = IDistributionComponent.processRenewal.selector;
|
99
|
-
|
100
|
-
RoleId[] memory roles = new RoleId[](2);
|
101
|
-
roles[0] = DISTRIBUTION_OWNER_ROLE();
|
102
|
-
roles[1] = PRODUCT_SERVICE_ROLE();
|
103
|
-
|
104
|
-
getInstanceService().createGifTarget(
|
105
|
-
instanceNftId,
|
106
|
-
distributionAddress,
|
107
|
-
distribution.getName(),
|
108
|
-
selectors,
|
109
|
-
roles);
|
110
|
-
}
|
111
|
-
|
112
|
-
function setFees(
|
113
|
-
Fee memory minDistributionOwnerFee,
|
114
|
-
Fee memory distributionFee
|
115
|
-
)
|
116
|
-
external
|
117
|
-
override
|
118
|
-
{
|
119
|
-
if (minDistributionOwnerFee.fractionalFee > distributionFee.fractionalFee) {
|
120
|
-
revert ErrorIDistributionServiceMinFeeTooHigh(minDistributionOwnerFee.fractionalFee.toInt(), distributionFee.fractionalFee.toInt());
|
121
|
-
}
|
122
|
-
|
123
|
-
(NftId distributionNftId, IRegistry.ObjectInfo memory info , IInstance instance) = _getAndVerifyComponentInfoAndInstance(DISTRIBUTION());
|
124
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
125
|
-
|
126
|
-
ISetup.DistributionSetupInfo memory distSetupInfo = instanceReader.getDistributionSetupInfo(distributionNftId);
|
127
|
-
distSetupInfo.minDistributionOwnerFee = minDistributionOwnerFee;
|
128
|
-
distSetupInfo.distributionFee = distributionFee;
|
129
|
-
|
130
|
-
instance.updateDistributionSetup(distributionNftId, distSetupInfo, KEEP_STATE());
|
131
|
-
}
|
132
|
-
|
133
|
-
function createDistributorType(
|
134
|
-
string memory name,
|
135
|
-
UFixed minDiscountPercentage,
|
136
|
-
UFixed maxDiscountPercentage,
|
137
|
-
UFixed commissionPercentage,
|
138
|
-
uint32 maxReferralCount,
|
139
|
-
uint32 maxReferralLifetime,
|
140
|
-
bool allowSelfReferrals,
|
141
|
-
bool allowRenewals,
|
142
|
-
bytes memory data
|
143
|
-
)
|
144
|
-
external
|
145
|
-
returns (DistributorType distributorType)
|
146
|
-
{
|
147
|
-
(NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
|
148
|
-
|
149
|
-
{
|
150
|
-
ISetup.DistributionSetupInfo memory setupInfo = instance.getInstanceReader().getDistributionSetupInfo(distributionNftId);
|
151
|
-
UFixed variableFeesPartsTotal = setupInfo.minDistributionOwnerFee.fractionalFee.add(commissionPercentage);
|
152
|
-
UFixed maxDiscountPercentageLimit = setupInfo.distributionFee.fractionalFee.sub(variableFeesPartsTotal);
|
153
|
-
if (maxDiscountPercentage.gt(maxDiscountPercentageLimit)) {
|
154
|
-
revert ErrorIDistributionServiceMaxDiscountTooHigh(maxDiscountPercentage.toInt(), maxDiscountPercentageLimit.toInt());
|
155
|
-
}
|
156
|
-
}
|
157
|
-
|
158
|
-
distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
|
159
|
-
IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
|
160
|
-
name,
|
161
|
-
minDiscountPercentage,
|
162
|
-
maxDiscountPercentage,
|
163
|
-
commissionPercentage,
|
164
|
-
maxReferralCount,
|
165
|
-
maxReferralLifetime,
|
166
|
-
allowSelfReferrals,
|
167
|
-
allowRenewals,
|
168
|
-
data);
|
169
|
-
|
170
|
-
instance.createDistributorType(distributorType, info);
|
171
|
-
}
|
172
|
-
|
173
|
-
|
174
|
-
function createDistributor(
|
175
|
-
address distributor,
|
176
|
-
DistributorType distributorType,
|
177
|
-
bytes memory data
|
178
|
-
)
|
179
|
-
external
|
180
|
-
virtual
|
181
|
-
returns (NftId distributorNftId)
|
182
|
-
{
|
183
|
-
(NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
|
184
|
-
|
185
|
-
distributorNftId = getRegistryService().registerDistributor(
|
186
|
-
IRegistry.ObjectInfo(
|
187
|
-
zeroNftId(),
|
188
|
-
distributionNftId,
|
189
|
-
DISTRIBUTOR(),
|
190
|
-
true, // intercepting property for bundles is defined on pool
|
191
|
-
address(0),
|
192
|
-
distributor,
|
193
|
-
""
|
194
|
-
));
|
195
|
-
|
196
|
-
IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo(
|
197
|
-
distributorType,
|
198
|
-
true, // active
|
199
|
-
data,
|
200
|
-
AmountLib.zero(),
|
201
|
-
0);
|
202
|
-
|
203
|
-
instance.createDistributor(distributorNftId, info);
|
204
|
-
}
|
205
|
-
|
206
|
-
// function updateDistributorType(
|
207
|
-
// NftId distributorNftId,
|
208
|
-
// DistributorType distributorType,
|
209
|
-
// bytes memory data
|
210
|
-
// )
|
211
|
-
// external
|
212
|
-
// virtual
|
213
|
-
// {
|
214
|
-
// (, IInstance instance) = _getAndVerifyCallingDistribution();
|
215
|
-
// InstanceReader instanceReader = instance.getInstanceReader();
|
216
|
-
// IDistribution.DistributorInfo memory distributorInfo = instanceReader.getDistributorInfo(distributorNftId);
|
217
|
-
// distributorInfo.distributorType = distributorType;
|
218
|
-
// distributorInfo.data = data;
|
219
|
-
// instance.updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
|
220
|
-
// }
|
221
|
-
|
222
|
-
|
223
|
-
function createReferral(
|
224
|
-
NftId distributorNftId,
|
225
|
-
string memory code,
|
226
|
-
UFixed discountPercentage,
|
227
|
-
uint32 maxReferrals,
|
228
|
-
Timestamp expiryAt,
|
229
|
-
bytes memory data
|
230
|
-
)
|
231
|
-
external
|
232
|
-
virtual
|
233
|
-
returns (ReferralId referralId)
|
234
|
-
{
|
235
|
-
(NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
|
236
|
-
|
237
|
-
if (bytes(code).length == 0) {
|
238
|
-
revert ErrorIDistributionServiceInvalidReferral(code);
|
239
|
-
}
|
240
|
-
if (expiryAt.eqz()) {
|
241
|
-
revert ErrorIDistributionServiceExpirationInvalid(expiryAt);
|
242
|
-
}
|
243
|
-
|
244
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
245
|
-
DistributorType distributorType = instanceReader.getDistributorInfo(distributorNftId).distributorType;
|
246
|
-
IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
|
247
|
-
|
248
|
-
if (distributorTypeData.maxReferralCount < maxReferrals) {
|
249
|
-
revert ErrorIDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
|
250
|
-
}
|
251
|
-
if (distributorTypeData.minDiscountPercentage > discountPercentage) {
|
252
|
-
revert ErrorIDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
|
253
|
-
}
|
254
|
-
if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
|
255
|
-
revert ErrorIDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
|
256
|
-
}
|
257
|
-
if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime) {
|
258
|
-
revert ErrorIDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt.toInt());
|
259
|
-
}
|
260
|
-
|
261
|
-
referralId = ReferralLib.toReferralId(distributionNftId, code);
|
262
|
-
IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo(
|
263
|
-
distributorNftId,
|
264
|
-
code,
|
265
|
-
discountPercentage,
|
266
|
-
maxReferrals,
|
267
|
-
0, // used referrals
|
268
|
-
expiryAt,
|
269
|
-
data
|
270
|
-
);
|
271
|
-
|
272
|
-
instance.createReferral(referralId, info);
|
273
|
-
return referralId;
|
274
|
-
}
|
275
|
-
|
276
|
-
function processSale(
|
277
|
-
NftId distributionNftId,
|
278
|
-
ReferralId referralId,
|
279
|
-
IPolicy.Premium memory premium,
|
280
|
-
Amount transferredDistributionFeeAmount
|
281
|
-
)
|
282
|
-
external
|
283
|
-
virtual
|
284
|
-
{
|
285
|
-
bool isReferral = ! referralId.eqz();
|
286
|
-
bool referralValid = referralIsValid(distributionNftId, referralId);
|
287
|
-
|
288
|
-
if (isReferral && ! referralValid) {
|
289
|
-
revert ErrorIDistributionServiceReferralInvalid(distributionNftId, referralId);
|
290
|
-
}
|
291
|
-
|
292
|
-
IInstance instance = _getInstanceForDistribution(distributionNftId);
|
293
|
-
InstanceReader reader = instance.getInstanceReader();
|
294
|
-
IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
|
295
|
-
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
296
|
-
ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
|
297
|
-
|
298
|
-
Amount distributionOwnerFee = AmountLib.toAmount(premium.distributionOwnerFeeFixAmount + premium.distributionOwnerFeeVarAmount);
|
299
|
-
Amount commissionAmount = AmountLib.toAmount(premium.commissionAmount);
|
300
|
-
|
301
|
-
if (!(transferredDistributionFeeAmount == distributionOwnerFee + commissionAmount)) {
|
302
|
-
revert ErrorDistributionServiceInvalidFeeTransferred(transferredDistributionFeeAmount, distributionOwnerFee + commissionAmount);
|
303
|
-
}
|
304
|
-
|
305
|
-
|
306
|
-
if (distributionOwnerFee.gtz()) {
|
307
|
-
setupInfo.sumDistributionOwnerFees += distributionOwnerFee.toInt();
|
308
|
-
instance.updateDistributionSetup(distributionNftId, setupInfo, KEEP_STATE());
|
309
|
-
}
|
310
|
-
|
311
|
-
if (isReferral) {
|
312
|
-
referralInfo.usedReferrals += 1;
|
313
|
-
instance.updateReferral(referralId, referralInfo, KEEP_STATE());
|
314
|
-
|
315
|
-
if (commissionAmount.gtz()) {
|
316
|
-
distributorInfo.commissionAmount = distributorInfo.commissionAmount + commissionAmount;
|
317
|
-
distributorInfo.numPoliciesSold += 1;
|
318
|
-
instance.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
|
319
|
-
}
|
320
|
-
}
|
321
|
-
}
|
322
|
-
|
323
|
-
function calculateFeeAmount(
|
324
|
-
NftId distributionNftId,
|
325
|
-
ReferralId referralId,
|
326
|
-
IPolicy.Premium memory premium
|
327
|
-
)
|
328
|
-
external
|
329
|
-
virtual
|
330
|
-
view
|
331
|
-
returns (IPolicy.Premium memory finalPremium)
|
332
|
-
{
|
333
|
-
IInstance instance = _getInstanceForDistribution(distributionNftId);
|
334
|
-
InstanceReader reader = instance.getInstanceReader();
|
335
|
-
|
336
|
-
// first calculate all fixed and variable fees for the distribution - this will defined the fullPremium
|
337
|
-
ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
|
338
|
-
Fee memory distributionFee = setupInfo.distributionFee;
|
339
|
-
Fee memory minDistributionOwnerFee = setupInfo.minDistributionOwnerFee;
|
340
|
-
uint256 distributionFeeVarAmount = (UFixedLib.toUFixed(premium.netPremiumAmount) * distributionFee.fractionalFee).toInt();
|
341
|
-
premium.distributionFeeVarAmount = distributionFeeVarAmount;
|
342
|
-
premium.fullPremiumAmount += distributionFeeVarAmount;
|
343
|
-
|
344
|
-
// if the referral is not valid, then the distribution owner gets everything
|
345
|
-
if (! referralIsValid(distributionNftId, referralId)) {
|
346
|
-
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
347
|
-
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
348
|
-
premium.premiumAmount = premium.fullPremiumAmount;
|
349
|
-
return premium;
|
350
|
-
}
|
351
|
-
|
352
|
-
// if the referral is valid, the commission and discount are calculated based in the full premium
|
353
|
-
// the remaing amount goes to the distribution owner
|
354
|
-
{
|
355
|
-
IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
|
356
|
-
IDistribution.DistributorTypeInfo memory distributorTypeInfo = reader.getDistributorTypeInfo(
|
357
|
-
reader.getDistributorInfo(
|
358
|
-
referralInfo.distributorNftId).distributorType);
|
359
|
-
|
360
|
-
uint256 commissionAmount = UFixedLib.toUFixed(premium.netPremiumAmount).mul(distributorTypeInfo.commissionPercentage).toInt();
|
361
|
-
premium.commissionAmount = commissionAmount;
|
362
|
-
premium.discountAmount = UFixedLib.toUFixed(premium.fullPremiumAmount).mul(referralInfo.discountPercentage).toInt();
|
363
|
-
premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
|
364
|
-
premium.distributionOwnerFeeVarAmount = distributionFeeVarAmount - commissionAmount - premium.discountAmount;
|
365
|
-
premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
|
366
|
-
}
|
367
|
-
|
368
|
-
// sanity check to validate the fee calculation
|
369
|
-
if (
|
370
|
-
premium.distributionOwnerFeeFixAmount < minDistributionOwnerFee.fixedFee
|
371
|
-
|| (premium.distributionFeeVarAmount) != (premium.discountAmount + premium.distributionOwnerFeeVarAmount + premium.commissionAmount)
|
372
|
-
)
|
373
|
-
{
|
374
|
-
revert ErrorIDistributionServiceFeeCalculationMismatch(
|
375
|
-
premium.distributionFeeFixAmount,
|
376
|
-
premium.distributionFeeVarAmount,
|
377
|
-
premium.distributionOwnerFeeFixAmount,
|
378
|
-
premium.distributionOwnerFeeVarAmount,
|
379
|
-
premium.commissionAmount,
|
380
|
-
premium.discountAmount
|
381
|
-
);
|
382
|
-
}
|
383
|
-
|
384
|
-
return premium;
|
385
|
-
}
|
386
|
-
|
387
|
-
// TODO: zero should return false
|
388
|
-
function referralIsValid(NftId distributionNftId, ReferralId referralId) public view returns (bool isValid) {
|
389
|
-
IInstance instance = _getInstanceForDistribution(distributionNftId);
|
390
|
-
IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
|
391
|
-
|
392
|
-
if (info.distributorNftId.eqz()) {
|
393
|
-
return false;
|
394
|
-
}
|
395
|
-
|
396
|
-
isValid = info.expiryAt.eqz() || (info.expiryAt.gtz() && TimestampLib.blockTimestamp() <= info.expiryAt);
|
397
|
-
isValid = isValid && info.usedReferrals < info.maxReferrals;
|
398
|
-
}
|
399
|
-
|
400
|
-
function _getAndVerifyCallingDistribution()
|
401
|
-
internal
|
402
|
-
view
|
403
|
-
returns(
|
404
|
-
NftId distributionNftId,
|
405
|
-
IInstance instance
|
406
|
-
)
|
407
|
-
{
|
408
|
-
distributionNftId = getRegistry().getNftId(msg.sender);
|
409
|
-
if (distributionNftId.eqz()) {
|
410
|
-
revert ErrorDistributionServiceCallerNotRegistered(msg.sender);
|
411
|
-
}
|
412
|
-
|
413
|
-
IRegistry.ObjectInfo memory info = getRegistry().getObjectInfo(distributionNftId);
|
414
|
-
if(info.objectType != DISTRIBUTION()) {
|
415
|
-
revert ErrorIDistributionServiceCallerNotDistributor(msg.sender);
|
416
|
-
}
|
417
|
-
|
418
|
-
address instanceAddress = getRegistry().getObjectInfo(info.parentNftId).objectAddress;
|
419
|
-
instance = IInstance(instanceAddress);
|
420
|
-
}
|
421
|
-
|
422
|
-
|
423
|
-
function _getInstanceForDistribution(NftId distributionNftId)
|
424
|
-
internal
|
425
|
-
view
|
426
|
-
returns(IInstance instance)
|
427
|
-
{
|
428
|
-
NftId instanceNftId = getRegistry().getObjectInfo(distributionNftId).parentNftId;
|
429
|
-
address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
|
430
|
-
return IInstance(instanceAddress);
|
431
|
-
}
|
432
|
-
}
|
@@ -1,51 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {IVersionable} from "../../shared/IVersionable.sol";
|
5
|
-
import {ProxyManager} from "../../shared/ProxyManager.sol";
|
6
|
-
import {DistributionService} from "./DistributionService.sol";
|
7
|
-
import {Registry} from "../../registry/Registry.sol";
|
8
|
-
import {RegistryService} from "../../registry/RegistryService.sol";
|
9
|
-
import {REGISTRY} from "../../types/ObjectType.sol";
|
10
|
-
|
11
|
-
contract DistributionServiceManager is ProxyManager {
|
12
|
-
|
13
|
-
DistributionService private _distributionService;
|
14
|
-
|
15
|
-
/// @dev initializes proxy manager with distribution service implementation and deploys instance
|
16
|
-
constructor(
|
17
|
-
address registryAddress
|
18
|
-
)
|
19
|
-
ProxyManager(registryAddress)
|
20
|
-
{
|
21
|
-
DistributionService distSrv = new DistributionService();
|
22
|
-
bytes memory data = abi.encode(registryAddress, address(this));
|
23
|
-
IVersionable versionable = deploy(
|
24
|
-
address(distSrv),
|
25
|
-
data);
|
26
|
-
|
27
|
-
_distributionService = DistributionService(address(versionable));
|
28
|
-
|
29
|
-
// TODO `thi` must have a role or own nft to register service
|
30
|
-
//Registry registry = Registry(registryAddress);
|
31
|
-
//address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _distributionService.getMajorVersion());
|
32
|
-
//RegistryService registryService = RegistryService(registryServiceAddress);
|
33
|
-
//registryService.registerService(_distributionService);
|
34
|
-
|
35
|
-
// TODO no nft to link yet
|
36
|
-
// link ownership of instance service manager ot nft owner of instance service
|
37
|
-
//_linkToNftOwnable(
|
38
|
-
// address(registryAddress),
|
39
|
-
// address(_distributionService));
|
40
|
-
}
|
41
|
-
|
42
|
-
//--- view functions ----------------------------------------------------//
|
43
|
-
function getDistributionService()
|
44
|
-
external
|
45
|
-
view
|
46
|
-
returns (DistributionService distributionService)
|
47
|
-
{
|
48
|
-
return _distributionService;
|
49
|
-
}
|
50
|
-
|
51
|
-
}
|
@@ -1,101 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {Amount} from "../../types/Amount.sol";
|
5
|
-
import {NftId} from "../../types/NftId.sol";
|
6
|
-
import {Fee} from "../../types/Fee.sol";
|
7
|
-
import {IPolicy} from "../module/IPolicy.sol";
|
8
|
-
import {IService} from "../../shared/IService.sol";
|
9
|
-
import {UFixed} from "../../types/UFixed.sol";
|
10
|
-
import {DistributorType} from "../../types/DistributorType.sol";
|
11
|
-
import {ReferralId} from "../../types/Referral.sol";
|
12
|
-
import {Timestamp} from "../../types/Timestamp.sol";
|
13
|
-
|
14
|
-
|
15
|
-
interface IDistributionService is IService {
|
16
|
-
error ErrorDistributionServiceCallerNotRegistered(address caller);
|
17
|
-
error ErrorIDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
|
18
|
-
error ErrorIDistributionServiceCallerNotDistributor(address caller);
|
19
|
-
error ErrorIDistributionServiceInvalidReferralId(ReferralId referralId);
|
20
|
-
error ErrorIDistributionServiceMaxReferralsExceeded(uint256 maxReferrals);
|
21
|
-
error ErrorIDistributionServiceDiscountTooLow(uint256 minDiscountPercentage, uint256 discountPercentage);
|
22
|
-
error ErrorIDistributionServiceDiscountTooHigh(uint256 maxDiscountPercentage, uint256 discountPercentage);
|
23
|
-
error ErrorIDistributionServiceExpiryTooLong(uint256 maxReferralLifetime, uint256 expiryAt);
|
24
|
-
error ErrorIDistributionServiceInvalidReferral(string code);
|
25
|
-
error ErrorIDistributionServiceExpirationInvalid(Timestamp expiryAt);
|
26
|
-
error ErrorIDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
|
27
|
-
error ErrorIDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
|
28
|
-
error ErrorIDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
|
29
|
-
error ErrorIDistributionServiceFeeCalculationMismatch(
|
30
|
-
uint256 distributionFeeFixAmount,
|
31
|
-
uint256 distributionFeeVarAmount,
|
32
|
-
uint256 distributionOwnerFeeFixAmount,
|
33
|
-
uint256 distributionOwnerFeeVarAmount,
|
34
|
-
uint256 commissionAmount,
|
35
|
-
uint256 discountAmount
|
36
|
-
);
|
37
|
-
error ErrorIDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
|
38
|
-
error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
|
39
|
-
|
40
|
-
function setFees(
|
41
|
-
Fee memory minDistributionOwnerFee,
|
42
|
-
Fee memory distributionFee
|
43
|
-
) external;
|
44
|
-
|
45
|
-
function createDistributorType(
|
46
|
-
string memory name,
|
47
|
-
UFixed minDiscountPercentage,
|
48
|
-
UFixed maxDiscountPercentage,
|
49
|
-
UFixed commissionPercentage,
|
50
|
-
uint32 maxReferralCount,
|
51
|
-
uint32 maxReferralLifetime,
|
52
|
-
bool allowSelfReferrals,
|
53
|
-
bool allowRenewals,
|
54
|
-
bytes memory data
|
55
|
-
)
|
56
|
-
external
|
57
|
-
returns (DistributorType distributorType);
|
58
|
-
|
59
|
-
function createDistributor(
|
60
|
-
address distributor,
|
61
|
-
DistributorType distributorType,
|
62
|
-
bytes memory data
|
63
|
-
) external returns (NftId distributorNftId);
|
64
|
-
|
65
|
-
// TODO re-enable and reorganize (service contract too large)
|
66
|
-
// function updateDistributorType(
|
67
|
-
// NftId distributorNftId,
|
68
|
-
// DistributorType distributorType,
|
69
|
-
// bytes memory data
|
70
|
-
// ) external;
|
71
|
-
|
72
|
-
function createReferral(
|
73
|
-
NftId distributorNftId,
|
74
|
-
string memory code,
|
75
|
-
UFixed discountPercentage,
|
76
|
-
uint32 maxReferrals,
|
77
|
-
Timestamp expiryAt,
|
78
|
-
bytes memory data
|
79
|
-
)
|
80
|
-
external
|
81
|
-
returns (ReferralId referralId);
|
82
|
-
|
83
|
-
/// @dev callback from product service when selling a policy for a specific referralId
|
84
|
-
function processSale(
|
85
|
-
NftId distributionNftId,
|
86
|
-
ReferralId referralId,
|
87
|
-
IPolicy.Premium memory premium,
|
88
|
-
Amount transferredDistributionFeeAmount
|
89
|
-
) external;
|
90
|
-
|
91
|
-
function calculateFeeAmount(
|
92
|
-
NftId distributionNftId,
|
93
|
-
ReferralId referralId,
|
94
|
-
IPolicy.Premium memory premium
|
95
|
-
) external view returns (IPolicy.Premium memory finalPremium);
|
96
|
-
|
97
|
-
function referralIsValid(
|
98
|
-
NftId distributorNftId,
|
99
|
-
ReferralId referralId
|
100
|
-
) external view returns (bool isValid);
|
101
|
-
}
|
@@ -1,80 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRisk} from "../module/IRisk.sol";
|
5
|
-
import {IService} from "../../shared/IService.sol";
|
6
|
-
|
7
|
-
import {Amount} from "../../types/Amount.sol";
|
8
|
-
import {ClaimId} from "../../types/ClaimId.sol";
|
9
|
-
import {NftId} from "../../types/NftId.sol";
|
10
|
-
import {PayoutId} from "../../types/PayoutId.sol";
|
11
|
-
import {ReferralId} from "../../types/Referral.sol";
|
12
|
-
import {RiskId} from "../../types/RiskId.sol";
|
13
|
-
import {Seconds} from "../../types/Seconds.sol";
|
14
|
-
import {StateId} from "../../types/StateId.sol";
|
15
|
-
import {Timestamp} from "../../types/Timestamp.sol";
|
16
|
-
import {UFixed} from "../../types/UFixed.sol";
|
17
|
-
import {Fee} from "../../types/Fee.sol";
|
18
|
-
|
19
|
-
interface IPolicyService is IService {
|
20
|
-
|
21
|
-
error ErrorPolicyServiceProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
|
22
|
-
error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
|
23
|
-
|
24
|
-
error ErrorIPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
|
25
|
-
error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId, Amount premiumPaidAmount);
|
26
|
-
error ErrorIPolicyServicePolicyNotActivated(NftId policyNftId);
|
27
|
-
error ErrorIPolicyServicePolicyAlreadyClosed(NftId policyNftId);
|
28
|
-
error ErrorIPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
|
29
|
-
error ErrorPolicyServicePremiumNotFullyPaid(NftId policyNftId, Amount premiumAmount, Amount premiumPaidAmount);
|
30
|
-
error ErrorIPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
|
31
|
-
error ErrorIPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
|
32
|
-
|
33
|
-
error ErrorPolicyServicePremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount recalculatedPremiumAmount);
|
34
|
-
error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount transferredPremiumAmount);
|
35
|
-
|
36
|
-
/// @dev collateralizes the policy represented by {policyNftId}
|
37
|
-
/// sets the policy state to collateralized
|
38
|
-
/// may set the policy state to activated and set the activation date
|
39
|
-
/// optionally collects premiums and activates the policy.
|
40
|
-
/// - premium payment is only attempted if requirePremiumPayment is set to true
|
41
|
-
/// - activation is only done if activateAt is a non-zero timestamp
|
42
|
-
/// an application can only be collateralized in applied state
|
43
|
-
/// only the related product may collateralize an application
|
44
|
-
function collateralize(
|
45
|
-
NftId policyNftId,
|
46
|
-
bool requirePremiumPayment,
|
47
|
-
Timestamp activateAt
|
48
|
-
) external;
|
49
|
-
|
50
|
-
/// @dev declines an application represented by {policyNftId}
|
51
|
-
/// an application can only be declined in applied state
|
52
|
-
/// only the related product may decline an application
|
53
|
-
function decline(NftId policyNftId) external;
|
54
|
-
|
55
|
-
/// @dev collects the premium token for the specified policy
|
56
|
-
function collectPremium(NftId policyNftId, Timestamp activateAt) external;
|
57
|
-
|
58
|
-
/// @dev activates the specified policy and sets the activation date in the policy metadata
|
59
|
-
/// to activate a policy it needs to be in underwritten state
|
60
|
-
function activate(NftId policyNftId, Timestamp activateAt) external;
|
61
|
-
|
62
|
-
/// @dev expires the specified policy and sets the expiry date in the policy metadata
|
63
|
-
/// to expire a policy it must be in active state, policies may be expired even when the predefined expiry date is still in the future
|
64
|
-
/// a policy can only be closed when it has been expired. in addition, it must not have any open claims
|
65
|
-
/// this function can only be called by a product. the policy needs to match with the calling product
|
66
|
-
function expire(NftId policyNftId) external;
|
67
|
-
|
68
|
-
/// @dev closes the specified policy and sets the closed data in the policy metadata
|
69
|
-
/// a policy can only be closed when it has been expired. in addition, it must not have any open claims
|
70
|
-
/// this function can only be called by a product. the policy needs to match with the calling product
|
71
|
-
function close(NftId policyNftId) external;
|
72
|
-
|
73
|
-
|
74
|
-
// TODO move function to pool service
|
75
|
-
function calculateRequiredCollateral(
|
76
|
-
UFixed collateralizationLevel,
|
77
|
-
Amount sumInsuredAmount
|
78
|
-
) external pure returns(Amount collateralAmount);
|
79
|
-
|
80
|
-
}
|