@etherisc/gif-next 0.0.2-8bdd2eb-413 → 0.0.2-8c6c3ef-628
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 +128 -9
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -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/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared/IAccessManagerExtended.sol/IAccessManagerExtended.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +507 -845
- 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 +1225 -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 +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +119 -605
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +529 -282
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +192 -118
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +133 -279
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +323 -66
- 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 +1461 -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 +2018 -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 +1404 -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 +1628 -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 +2405 -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 +265 -88
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +269 -111
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +278 -213
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1581 -253
- 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 +1294 -401
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +275 -274
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -104
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1096 -770
- 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 +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- 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 +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- 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/oracle/IOracleService.sol/IOracleService.json +733 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +854 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1013 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +772 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
- 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 +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +408 -220
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +190 -104
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +224 -34
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +128 -396
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +472 -307
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +125 -684
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +472 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +715 -541
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +189 -103
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +207 -170
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +129 -99
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
- 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 +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +454 -220
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +166 -120
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +148 -8
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +320 -15
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +377 -103
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +169 -82
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +270 -268
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +100 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +487 -292
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +727 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +162 -104
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +252 -308
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -132
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +268 -567
- 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 +367 -63
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +84 -151
- 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 +599 -126
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1777 -166
- 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 +132 -278
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +111 -85
- 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 +15 -15
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +67 -277
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +542 -530
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +152 -124
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +63 -104
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +661 -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 +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +80 -100
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +512 -245
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +116 -133
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -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 +67 -1
- 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 +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +106 -366
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
- 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 +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- 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 +63 -104
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- 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 +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +196 -143
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +203 -29
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +280 -421
- 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 +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +140 -117
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +41 -73
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +259 -187
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +117 -99
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +273 -165
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +94 -48
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +153 -4
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- 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 +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +283 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
- 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 +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- 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 +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
- 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 +142 -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 +261 -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 +57 -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 +122 -139
- package/contracts/distribution/DistributionService.sol +237 -137
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +19 -42
- package/contracts/distribution/IDistributionService.sol +44 -22
- 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 +75 -48
- package/contracts/instance/IInstanceService.sol +47 -40
- package/contracts/instance/Instance.sol +198 -129
- package/contracts/instance/InstanceAdmin.sol +363 -244
- package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
- package/contracts/instance/InstanceReader.sol +329 -44
- package/contracts/instance/InstanceService.sol +272 -175
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +58 -20
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +14 -11
- package/contracts/instance/base/Cloneable.sol +2 -25
- 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 -5
- package/contracts/instance/module/IComponents.sol +30 -20
- package/contracts/instance/module/IDistribution.sol +21 -9
- package/contracts/instance/module/IPolicy.sol +50 -29
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
- package/contracts/oracle/IOracle.sol +41 -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 +212 -112
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +31 -22
- package/contracts/pool/IPoolComponent.sol +20 -70
- package/contracts/pool/IPoolService.sol +90 -75
- package/contracts/pool/Pool.sol +207 -163
- package/contracts/pool/PoolLib.sol +309 -0
- package/contracts/pool/PoolService.sol +396 -262
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +132 -86
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +56 -0
- package/contracts/product/ClaimService.sol +378 -180
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +9 -2
- package/contracts/product/IClaimService.sol +47 -5
- package/contracts/product/IPolicyService.sol +53 -36
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +29 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
- package/contracts/product/PolicyService.sol +441 -276
- package/contracts/product/PolicyServiceLib.sol +119 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +73 -65
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +230 -140
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +78 -32
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +368 -214
- package/contracts/registry/RegistryAdmin.sol +188 -167
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +46 -71
- package/contracts/registry/RegistryServiceManager.sol +5 -10
- 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 +332 -0
- package/contracts/registry/TokenRegistry.sol +12 -11
- package/contracts/shared/Component.sol +66 -134
- package/contracts/shared/ComponentService.sol +429 -364
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +40 -23
- package/contracts/shared/ContractLib.sol +347 -0
- package/contracts/shared/IComponent.sol +5 -17
- package/contracts/shared/IComponentService.sol +50 -31
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +3 -2
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +10 -5
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
- package/contracts/shared/InstanceLinkedComponent.sol +95 -45
- package/contracts/shared/KeyValueStore.sol +7 -3
- package/contracts/shared/Lifecycle.sol +30 -63
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +31 -11
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +28 -40
- package/contracts/shared/TokenHandler.sol +310 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +26 -15
- package/contracts/staking/IStakingService.sol +41 -15
- package/contracts/staking/Staking.sol +153 -158
- package/contracts/staking/StakingLib.sol +281 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +26 -33
- package/contracts/staking/StakingService.sol +143 -82
- package/contracts/staking/StakingServiceManager.sol +8 -8
- package/contracts/staking/StakingStore.sol +94 -60
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +190 -65
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +117 -78
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +27 -1
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +16 -7
- package/contracts/type/UFixed.sol +61 -125
- package/contracts/type/Version.sol +57 -6
- package/contracts/{shared → upgradeability}/ProxyManager.sol +82 -47
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +12 -8
- 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/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -204
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -679
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
- 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/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- 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/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -444
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -349
- package/contracts/instance/base/ObjectManager.sol +0 -82
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -599
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -470
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/shared/InitializableCustom.sol +0 -177
- package/contracts/staking/StakeManagerLib.sol +0 -179
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,56 +1,37 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {IInstance} from "../instance/IInstance.sol";
|
6
|
-
import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
4
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
7
5
|
import {IComponentService} from "../shared/IComponentService.sol";
|
6
|
+
import {IDistribution} from "../instance/module/IDistribution.sol";
|
7
|
+
import {IDistributionService} from "./IDistributionService.sol";
|
8
|
+
import {IInstance} from "../instance/IInstance.sol";
|
8
9
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
10
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
9
11
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
10
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
11
12
|
import {IComponents} from "../instance/module/IComponents.sol";
|
12
13
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
13
14
|
|
14
15
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
15
|
-
import {
|
16
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
17
|
-
import {PRODUCT_SERVICE_ROLE, DISTRIBUTION_OWNER_ROLE} from "../type/RoleId.sol";
|
18
|
-
import {KEEP_STATE} from "../type/StateId.sol";
|
19
|
-
import {ObjectType, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
|
20
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
21
|
-
import {RoleId} from "../type/RoleId.sol";
|
22
|
-
|
23
|
-
import {IVersionable} from "../shared/IVersionable.sol";
|
24
|
-
import {Versionable} from "../shared/Versionable.sol";
|
25
|
-
|
26
|
-
import {IService} from "../shared/IService.sol";
|
16
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
27
17
|
import {Service} from "../shared/Service.sol";
|
28
|
-
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
29
|
-
import {InstanceService} from "../instance/InstanceService.sol";
|
30
|
-
import {IComponent} from "../shared/IComponent.sol";
|
31
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
32
|
-
import {IDistributionService} from "./IDistributionService.sol";
|
33
|
-
import {IPricingService} from "../product/IPricingService.sol";
|
34
|
-
|
35
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
36
18
|
import {DistributorType, DistributorTypeLib} from "../type/DistributorType.sol";
|
37
|
-
import {
|
38
|
-
import {
|
39
|
-
import {
|
40
|
-
import {
|
19
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
20
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
21
|
+
import {ObjectType, ACCOUNTING, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
|
22
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
41
23
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
24
|
+
import {ReferralId, ReferralLib} from "../type/Referral.sol";
|
25
|
+
import {Seconds} from "../type/Seconds.sol";
|
26
|
+
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
27
|
+
import {UFixed} from "../type/UFixed.sol";
|
42
28
|
|
43
29
|
|
44
30
|
contract DistributionService is
|
45
|
-
|
31
|
+
Service,
|
46
32
|
IDistributionService
|
47
33
|
{
|
48
|
-
|
49
|
-
using TimestampLib for Timestamp;
|
50
|
-
using UFixedLib for UFixed;
|
51
|
-
using FeeLib for Fee;
|
52
|
-
using ReferralLib for ReferralId;
|
53
|
-
|
34
|
+
IAccountingService private _accountingService;
|
54
35
|
IComponentService private _componentService;
|
55
36
|
IInstanceService private _instanceService;
|
56
37
|
IRegistryService private _registryService;
|
@@ -60,25 +41,22 @@ contract DistributionService is
|
|
60
41
|
bytes memory data
|
61
42
|
)
|
62
43
|
internal
|
63
|
-
initializer
|
64
44
|
virtual override
|
45
|
+
initializer()
|
65
46
|
{
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
47
|
+
(
|
48
|
+
address authority,
|
49
|
+
address registry
|
50
|
+
) = abi.decode(data, (address, address));
|
51
|
+
|
52
|
+
__Service_init(authority, registry, owner);
|
72
53
|
|
54
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
73
55
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
74
56
|
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
75
57
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
76
58
|
|
77
|
-
|
78
|
-
}
|
79
|
-
|
80
|
-
function getDomain() public pure override returns(ObjectType) {
|
81
|
-
return DISTRIBUTION();
|
59
|
+
_registerInterface(type(IDistributionService).interfaceId);
|
82
60
|
}
|
83
61
|
|
84
62
|
|
@@ -88,38 +66,46 @@ contract DistributionService is
|
|
88
66
|
UFixed maxDiscountPercentage,
|
89
67
|
UFixed commissionPercentage,
|
90
68
|
uint32 maxReferralCount,
|
91
|
-
|
69
|
+
Seconds maxReferralLifetime,
|
92
70
|
bool allowSelfReferrals,
|
93
71
|
bool allowRenewals,
|
94
72
|
bytes memory data
|
95
73
|
)
|
96
74
|
external
|
75
|
+
restricted()
|
97
76
|
returns (DistributorType distributorType)
|
98
77
|
{
|
99
|
-
(NftId distributionNftId
|
100
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
78
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
101
79
|
|
102
80
|
{
|
103
|
-
NftId productNftId =
|
104
|
-
IComponents.
|
105
|
-
|
106
|
-
UFixed
|
81
|
+
NftId productNftId = getRegistry().getParentNftId(distributionNftId);
|
82
|
+
IComponents.FeeInfo memory feeInfo = instance.getInstanceReader().getFeeInfo(productNftId);
|
83
|
+
|
84
|
+
UFixed variableDistributionFees = feeInfo.distributionFee.fractionalFee;
|
85
|
+
UFixed variableFeesPartsTotal = feeInfo.minDistributionOwnerFee.fractionalFee + commissionPercentage;
|
86
|
+
|
87
|
+
if (variableFeesPartsTotal > variableDistributionFees) {
|
88
|
+
revert ErrorDistributionServiceVariableFeesTooHight(variableDistributionFees.toInt1000(), variableFeesPartsTotal.toInt1000());
|
89
|
+
}
|
90
|
+
UFixed maxDiscountPercentageLimit = variableDistributionFees - variableFeesPartsTotal;
|
91
|
+
|
107
92
|
if (maxDiscountPercentage.gt(maxDiscountPercentageLimit)) {
|
108
|
-
revert
|
93
|
+
revert ErrorDistributionServiceMaxDiscountTooHigh(maxDiscountPercentage.toInt1000(), maxDiscountPercentageLimit.toInt1000());
|
109
94
|
}
|
110
95
|
}
|
111
96
|
|
112
97
|
distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
|
113
|
-
IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
|
114
|
-
name,
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
98
|
+
IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo({
|
99
|
+
name: name,
|
100
|
+
distributionNftId: distributionNftId,
|
101
|
+
minDiscountPercentage: minDiscountPercentage,
|
102
|
+
maxDiscountPercentage: maxDiscountPercentage,
|
103
|
+
commissionPercentage: commissionPercentage,
|
104
|
+
maxReferralCount: maxReferralCount,
|
105
|
+
maxReferralLifetime: maxReferralLifetime,
|
106
|
+
allowSelfReferrals: allowSelfReferrals,
|
107
|
+
allowRenewals: allowRenewals,
|
108
|
+
data: data});
|
123
109
|
|
124
110
|
instance.getInstanceStore().createDistributorType(distributorType, info);
|
125
111
|
}
|
@@ -132,9 +118,11 @@ contract DistributionService is
|
|
132
118
|
)
|
133
119
|
external
|
134
120
|
virtual
|
121
|
+
restricted()
|
135
122
|
returns (NftId distributorNftId)
|
136
123
|
{
|
137
|
-
(NftId distributionNftId
|
124
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
125
|
+
_checkDistributionType(instance.getInstanceReader(), distributorType, distributionNftId);
|
138
126
|
|
139
127
|
distributorNftId = _registryService.registerDistributor(
|
140
128
|
IRegistry.ObjectInfo(
|
@@ -147,31 +135,33 @@ contract DistributionService is
|
|
147
135
|
""
|
148
136
|
));
|
149
137
|
|
150
|
-
IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo(
|
151
|
-
distributorType,
|
152
|
-
true,
|
153
|
-
|
154
|
-
|
155
|
-
0);
|
138
|
+
IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo({
|
139
|
+
distributorType: distributorType,
|
140
|
+
active: true,
|
141
|
+
numPoliciesSold: 0,
|
142
|
+
data: data});
|
156
143
|
|
157
144
|
instance.getInstanceStore().createDistributor(distributorNftId, info);
|
158
145
|
}
|
159
146
|
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
147
|
+
function changeDistributorType(
|
148
|
+
NftId distributorNftId,
|
149
|
+
DistributorType newDistributorType,
|
150
|
+
bytes memory data
|
151
|
+
)
|
152
|
+
external
|
153
|
+
virtual
|
154
|
+
restricted()
|
155
|
+
{
|
156
|
+
_checkNftType(distributorNftId, DISTRIBUTOR());
|
157
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
158
|
+
_checkDistributionType(instance.getInstanceReader(), newDistributorType, distributionNftId);
|
159
|
+
|
160
|
+
IDistribution.DistributorInfo memory distributorInfo = instance.getInstanceReader().getDistributorInfo(distributorNftId);
|
161
|
+
distributorInfo.distributorType = newDistributorType;
|
162
|
+
distributorInfo.data = data;
|
163
|
+
instance.getInstanceStore().updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
|
164
|
+
}
|
175
165
|
|
176
166
|
|
177
167
|
function createReferral(
|
@@ -184,115 +174,225 @@ contract DistributionService is
|
|
184
174
|
)
|
185
175
|
external
|
186
176
|
virtual
|
177
|
+
restricted()
|
178
|
+
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
187
179
|
returns (ReferralId referralId)
|
188
180
|
{
|
189
|
-
(NftId distributionNftId
|
181
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
190
182
|
|
191
183
|
if (bytes(code).length == 0) {
|
192
|
-
revert
|
184
|
+
revert ErrorDistributionServiceInvalidReferral(code);
|
193
185
|
}
|
194
|
-
if (expiryAt.eqz()) {
|
195
|
-
revert
|
186
|
+
if (expiryAt.eqz() || expiryAt.lte(TimestampLib.blockTimestamp())) {
|
187
|
+
revert ErrorDistributionServiceExpirationInvalid(expiryAt);
|
196
188
|
}
|
197
189
|
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
if (distributorTypeData.maxReferralCount < maxReferrals) {
|
203
|
-
revert ErrorIDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
|
204
|
-
}
|
205
|
-
if (distributorTypeData.minDiscountPercentage > discountPercentage) {
|
206
|
-
revert ErrorIDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
|
207
|
-
}
|
208
|
-
if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
|
209
|
-
revert ErrorIDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
|
190
|
+
NftId distributorDistributionNftId = getRegistry().getParentNftId(distributorNftId);
|
191
|
+
if (distributorDistributionNftId != distributionNftId) {
|
192
|
+
revert ErrorDistributionServiceDistributorDistributionMismatch(distributorNftId, distributorDistributionNftId, distributionNftId);
|
210
193
|
}
|
211
|
-
|
212
|
-
|
194
|
+
|
195
|
+
{
|
196
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
197
|
+
DistributorType distributorType = instanceReader.getDistributorInfo(distributorNftId).distributorType;
|
198
|
+
IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
|
199
|
+
|
200
|
+
if (distributorTypeData.maxReferralCount < maxReferrals) {
|
201
|
+
revert ErrorDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
|
202
|
+
}
|
203
|
+
if (distributorTypeData.minDiscountPercentage > discountPercentage) {
|
204
|
+
revert ErrorDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
|
205
|
+
}
|
206
|
+
if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
|
207
|
+
revert ErrorDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
|
208
|
+
}
|
209
|
+
if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime.toInt()) {
|
210
|
+
revert ErrorDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt);
|
211
|
+
}
|
213
212
|
}
|
214
213
|
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
214
|
+
{
|
215
|
+
referralId = ReferralLib.toReferralId(distributionNftId, code);
|
216
|
+
IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo({
|
217
|
+
distributionNftId: distributionNftId,
|
218
|
+
distributorNftId: distributorNftId,
|
219
|
+
referralCode: code,
|
220
|
+
discountPercentage: discountPercentage,
|
221
|
+
maxReferrals: maxReferrals,
|
222
|
+
usedReferrals: 0,
|
223
|
+
expiryAt: expiryAt,
|
224
|
+
data: data
|
225
|
+
});
|
226
|
+
|
227
|
+
instance.getInstanceStore().createReferral(referralId, info);
|
228
|
+
}
|
228
229
|
}
|
229
230
|
|
231
|
+
/// @inheritdoc IDistributionService
|
232
|
+
function processReferral(
|
233
|
+
NftId distributionNftId,
|
234
|
+
ReferralId referralId
|
235
|
+
)
|
236
|
+
external
|
237
|
+
virtual
|
238
|
+
restricted()
|
239
|
+
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
240
|
+
{
|
241
|
+
if (referralIsValid(distributionNftId, referralId)) {
|
242
|
+
IRegistry registry = getRegistry();
|
243
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(getRegistry(), distributionNftId));
|
244
|
+
|
245
|
+
// update book keeping for referral info
|
246
|
+
IDistribution.ReferralInfo memory referralInfo = instance.getInstanceReader().getReferralInfo(referralId);
|
247
|
+
referralInfo.usedReferrals += 1;
|
248
|
+
instance.getInstanceStore().updateReferral(referralId, referralInfo, KEEP_STATE());
|
249
|
+
}
|
250
|
+
}
|
230
251
|
|
231
252
|
function processSale(
|
232
253
|
NftId distributionNftId, // assume always of distribution type
|
233
254
|
ReferralId referralId,
|
234
|
-
IPolicy.
|
255
|
+
IPolicy.PremiumInfo memory premium
|
235
256
|
)
|
236
257
|
external
|
237
258
|
virtual
|
238
|
-
restricted
|
259
|
+
restricted()
|
260
|
+
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
239
261
|
{
|
240
|
-
|
262
|
+
IRegistry registry = getRegistry();
|
263
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(registry, distributionNftId));
|
241
264
|
InstanceReader reader = instance.getInstanceReader();
|
242
265
|
InstanceStore store = instance.getInstanceStore();
|
243
266
|
|
244
267
|
// get distribution owner fee amount
|
245
|
-
Amount distributionOwnerFee =
|
268
|
+
Amount distributionOwnerFee = premium.distributionOwnerFeeFixAmount + premium.distributionOwnerFeeVarAmount;
|
246
269
|
|
247
270
|
// update referral/distributor info if applicable
|
248
271
|
if (referralIsValid(distributionNftId, referralId)) {
|
249
272
|
|
250
273
|
// increase distribution balance by commission amount and distribution owner fee
|
251
|
-
Amount commissionAmount =
|
252
|
-
|
274
|
+
Amount commissionAmount = premium.commissionAmount;
|
275
|
+
_accountingService.increaseDistributionBalance(store, distributionNftId, commissionAmount, distributionOwnerFee);
|
253
276
|
|
254
277
|
// update book keeping for referral info
|
255
278
|
IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
|
256
|
-
|
257
|
-
|
279
|
+
|
280
|
+
_accountingService.increaseDistributorBalance(store, referralInfo.distributorNftId, AmountLib.zero(), commissionAmount);
|
258
281
|
|
259
282
|
// update book keeping for distributor info
|
260
283
|
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
261
|
-
// TODO refactor sum of commission amount into a fee balance for distributors
|
262
|
-
distributorInfo.commissionAmount = distributorInfo.commissionAmount + commissionAmount;
|
263
284
|
distributorInfo.numPoliciesSold += 1;
|
264
285
|
store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
|
265
286
|
} else {
|
266
|
-
|
267
287
|
// increase distribution balance by distribution owner fee
|
268
|
-
|
288
|
+
_accountingService.increaseDistributionBalance(store, distributionNftId, AmountLib.zero(), distributionOwnerFee);
|
269
289
|
}
|
270
290
|
}
|
271
291
|
|
272
|
-
|
292
|
+
/// @inheritdoc IDistributionService
|
293
|
+
function withdrawCommission(NftId distributorNftId, Amount amount)
|
294
|
+
public
|
295
|
+
virtual
|
296
|
+
restricted()
|
297
|
+
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
298
|
+
returns (Amount withdrawnAmount)
|
299
|
+
{
|
300
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
301
|
+
InstanceReader reader = instance.getInstanceReader();
|
302
|
+
|
303
|
+
IComponents.ComponentInfo memory distributionInfo = reader.getComponentInfo(distributionNftId);
|
304
|
+
// address distributionWallet = distributionInfo.tokenHandler.getWallet();
|
305
|
+
|
306
|
+
Amount commissionAmount = reader.getFeeAmount(distributorNftId);
|
307
|
+
|
308
|
+
// determine withdrawn amount
|
309
|
+
withdrawnAmount = amount;
|
310
|
+
if (withdrawnAmount.gte(AmountLib.max())) {
|
311
|
+
withdrawnAmount = commissionAmount;
|
312
|
+
} else {
|
313
|
+
if (withdrawnAmount.gt(commissionAmount)) {
|
314
|
+
revert ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(withdrawnAmount, commissionAmount);
|
315
|
+
}
|
316
|
+
}
|
317
|
+
|
318
|
+
// decrease fee counters by withdrawnAmount and update distributor info
|
319
|
+
{
|
320
|
+
InstanceStore store = instance.getInstanceStore();
|
321
|
+
// decrease fee counter for distribution balance
|
322
|
+
_accountingService.decreaseDistributionBalance(store, distributionNftId, withdrawnAmount, AmountLib.zero());
|
323
|
+
// decrease fee counter for distributor fee
|
324
|
+
_accountingService.decreaseDistributorBalance(store, distributorNftId, AmountLib.zero(), withdrawnAmount);
|
325
|
+
}
|
326
|
+
|
327
|
+
// transfer amount to distributor
|
328
|
+
{
|
329
|
+
address distributor = getRegistry().ownerOf(distributorNftId);
|
330
|
+
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.tokenHandler.TOKEN()), withdrawnAmount);
|
331
|
+
distributionInfo.tokenHandler.pushToken(distributor, withdrawnAmount);
|
332
|
+
}
|
333
|
+
}
|
334
|
+
|
335
|
+
function referralIsValid(NftId distributionNftId, ReferralId referralId)
|
336
|
+
public
|
337
|
+
view
|
338
|
+
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
339
|
+
returns (bool isValid)
|
340
|
+
{
|
273
341
|
if (distributionNftId.eqz() || referralId.eqz()) {
|
274
342
|
return false;
|
275
343
|
}
|
276
344
|
|
277
|
-
|
345
|
+
IRegistry registry = getRegistry();
|
346
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(registry, distributionNftId));
|
278
347
|
IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
|
279
348
|
|
280
349
|
if (info.distributorNftId.eqz()) {
|
281
350
|
return false;
|
282
351
|
}
|
283
352
|
|
353
|
+
// ensure the referral was created on the same distribution
|
354
|
+
if(info.distributionNftId != distributionNftId) {
|
355
|
+
revert ErrorDistributionServiceReferralDistributionMismatch(referralId, info.distributionNftId, distributionNftId);
|
356
|
+
}
|
357
|
+
|
284
358
|
isValid = info.expiryAt.eqz() || (info.expiryAt.gtz() && TimestampLib.blockTimestamp() <= info.expiryAt);
|
285
359
|
isValid = isValid && info.usedReferrals < info.maxReferrals;
|
286
360
|
}
|
287
361
|
|
288
|
-
function
|
362
|
+
function _checkDistributionType(InstanceReader instanceReader, DistributorType distributorType, NftId expectedDistributionNftId)
|
363
|
+
internal
|
364
|
+
view
|
365
|
+
{
|
366
|
+
// enfore distributor type belongs to the calling distribution
|
367
|
+
NftId distributorTypeDistributionNftId = instanceReader.getDistributorTypeInfo(distributorType).distributionNftId;
|
368
|
+
|
369
|
+
if (distributorTypeDistributionNftId != expectedDistributionNftId) {
|
370
|
+
revert ErrorDistributionServiceDistributorTypeDistributionMismatch(distributorType, distributorTypeDistributionNftId, expectedDistributionNftId);
|
371
|
+
}
|
372
|
+
}
|
373
|
+
|
374
|
+
function _getAndVerifyActiveDistribution()
|
289
375
|
internal
|
290
376
|
view
|
291
|
-
returns(
|
377
|
+
returns (
|
378
|
+
NftId didstributionNftId,
|
379
|
+
IInstance instance
|
380
|
+
)
|
292
381
|
{
|
293
|
-
|
294
|
-
|
295
|
-
|
382
|
+
(
|
383
|
+
IRegistry.ObjectInfo memory info,
|
384
|
+
address instanceAddress
|
385
|
+
) = ContractLib.getAndVerifyComponent(
|
386
|
+
getRegistry(),
|
387
|
+
msg.sender,
|
388
|
+
DISTRIBUTION(),
|
389
|
+
true); // only active pools
|
390
|
+
|
391
|
+
didstributionNftId = info.nftId;
|
392
|
+
instance = IInstance(instanceAddress);
|
296
393
|
}
|
297
394
|
|
395
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
396
|
+
return DISTRIBUTION();
|
397
|
+
}
|
298
398
|
}
|
@@ -1,12 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IVersionable} from "../
|
5
|
-
import {ProxyManager} from "../
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {DistributionService} from "./DistributionService.sol";
|
7
|
-
import {Registry} from "../registry/Registry.sol";
|
8
|
-
import {RegistryService} from "../registry/RegistryService.sol";
|
9
|
-
import {REGISTRY} from "../type/ObjectType.sol";
|
10
7
|
|
11
8
|
contract DistributionServiceManager is ProxyManager {
|
12
9
|
|
@@ -15,15 +12,15 @@ contract DistributionServiceManager is ProxyManager {
|
|
15
12
|
/// @dev initializes proxy manager with distribution service implementation and deploys instance
|
16
13
|
constructor(
|
17
14
|
address authority,
|
18
|
-
address
|
15
|
+
address registry,
|
19
16
|
bytes32 salt
|
20
17
|
)
|
21
|
-
ProxyManager(registryAddress)
|
22
18
|
{
|
23
|
-
DistributionService
|
24
|
-
bytes memory data = abi.encode(
|
25
|
-
IVersionable versionable =
|
26
|
-
|
19
|
+
DistributionService svc = new DistributionService{salt: salt}();
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
|
+
address(svc),
|
27
24
|
data,
|
28
25
|
salt);
|
29
26
|
|
@@ -1,66 +1,43 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
5
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
6
|
-
import {ReferralId, ReferralStatus} from "../type/Referral.sol";
|
7
6
|
import {NftId} from "../type/NftId.sol";
|
8
|
-
import {
|
7
|
+
import {ReferralId, ReferralStatus} from "../type/Referral.sol";
|
9
8
|
import {UFixed} from "../type/UFixed.sol";
|
10
|
-
import {Timestamp} from "../type/Timestamp.sol";
|
11
9
|
|
12
10
|
interface IDistributionComponent is IInstanceLinkedComponent {
|
13
11
|
|
14
|
-
event LogDistributorUpdated(address to, address
|
15
|
-
|
16
|
-
function setFees(
|
17
|
-
Fee memory distributionFee,
|
18
|
-
Fee memory minDistributionOwnerFee
|
19
|
-
) external;
|
20
|
-
|
21
|
-
function createDistributorType(
|
22
|
-
string memory name,
|
23
|
-
UFixed minDiscountPercentage,
|
24
|
-
UFixed maxDiscountPercentage,
|
25
|
-
UFixed commissionPercentage,
|
26
|
-
uint32 maxReferralCount,
|
27
|
-
uint32 maxReferralLifetime,
|
28
|
-
bool allowSelfReferrals,
|
29
|
-
bool allowRenewals,
|
30
|
-
bytes memory data
|
31
|
-
) external returns (DistributorType distributorType);
|
12
|
+
event LogDistributorUpdated(address to, address operator);
|
32
13
|
|
33
|
-
function
|
34
|
-
|
35
|
-
|
36
|
-
bytes memory data
|
37
|
-
) external returns(NftId distributorNftId);
|
14
|
+
function getDiscountPercentage(
|
15
|
+
string memory referralCode
|
16
|
+
) external view returns (UFixed discountPercentage, ReferralStatus status);
|
38
17
|
|
39
|
-
function
|
40
|
-
|
41
|
-
|
42
|
-
bytes memory data
|
43
|
-
) external;
|
18
|
+
function getReferralId(
|
19
|
+
string memory referralCode
|
20
|
+
) external returns (ReferralId referralId);
|
44
21
|
|
45
22
|
function calculateRenewalFeeAmount(
|
46
23
|
ReferralId referralId,
|
47
24
|
uint256 netPremiumAmount
|
48
25
|
) external view returns (uint256 feeAmount);
|
49
26
|
|
50
|
-
/// @dev
|
27
|
+
/// @dev Callback function to process a renewal of a policy.
|
28
|
+
/// The default implementation is empty.
|
29
|
+
/// Overwrite this function to implement a use case specific behaviour.
|
51
30
|
function processRenewal(
|
52
31
|
ReferralId referralId,
|
53
32
|
uint256 feeAmount
|
54
33
|
) external;
|
55
34
|
|
56
|
-
|
57
|
-
string memory referralCode
|
58
|
-
) external view returns (UFixed discountPercentage, ReferralStatus status);
|
59
|
-
|
60
|
-
function getReferralId(
|
61
|
-
string memory referralCode
|
62
|
-
) external returns (ReferralId referralId);
|
63
|
-
|
64
|
-
/// @dev returns true iff the component needs to be called when selling/renewing policis
|
35
|
+
/// @dev Returns true to ensure component is called when transferring distributor Nft Ids.
|
65
36
|
function isVerifying() external view returns (bool verifying);
|
37
|
+
|
38
|
+
/// @dev Withdraw commission for the distributor
|
39
|
+
/// @param distributorNftId the distributor Nft Id
|
40
|
+
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
41
|
+
/// @return withdrawnAmount the effective withdrawn amount
|
42
|
+
function withdrawCommission(NftId distributorNftId, Amount amount) external returns (Amount withdrawnAmount);
|
66
43
|
}
|