@etherisc/gif-next 0.0.2-ceb30b2-601 → 0.0.2-cf22d7b-845
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 +2 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +239 -155
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +118 -99
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +39 -307
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +6 -6
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +254 -2310
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +72 -22
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +397 -2818
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +204 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +507 -350
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +147 -193
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +113 -103
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -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 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol}/ObjectManager.json +3 -3
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- 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/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +45 -56
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +200 -97
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +144 -156
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +305 -103
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +499 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +30 -2
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +127 -71
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +53 -136
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +284 -106
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +1 -56
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +179 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +304 -52
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +415 -43
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +337 -72
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +93 -41
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +824 -91
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +143 -76
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -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} +17 -122
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +114 -75
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +45 -3
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
- 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 +7 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +170 -288
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +56 -7
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -22
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -9
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +7 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Referral.sol/ReferralLib.json +5 -5
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +5 -5
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
- package/contracts/{components → distribution}/Distribution.sol +41 -64
- package/contracts/distribution/DistributionService.sol +298 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
- package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
- package/contracts/instance/BundleManager.sol +5 -5
- package/contracts/instance/IInstance.sol +45 -70
- package/contracts/instance/IInstanceService.sol +29 -11
- package/contracts/instance/Instance.sol +112 -195
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
- package/contracts/instance/InstanceReader.sol +106 -58
- package/contracts/instance/InstanceService.sol +166 -288
- package/contracts/instance/InstanceServiceManager.sol +11 -21
- package/contracts/instance/InstanceStore.sol +260 -0
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +6 -6
- package/contracts/instance/module/IAccess.sol +4 -12
- package/contracts/instance/module/IBundle.sol +6 -9
- package/contracts/instance/module/IComponents.sol +21 -10
- package/contracts/instance/module/IDistribution.sol +7 -6
- package/contracts/instance/module/IPolicy.sol +20 -14
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +33 -29
- package/contracts/{components → pool}/IPoolComponent.sol +16 -17
- package/contracts/{instance/service → pool}/IPoolService.sol +57 -51
- package/contracts/{components → pool}/Pool.sol +52 -55
- package/contracts/pool/PoolService.sol +453 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/ClaimService.sol +167 -86
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
- package/contracts/{instance/service → product}/IClaimService.sol +18 -15
- package/contracts/{instance/service → product}/IPolicyService.sol +24 -26
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +42 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +475 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +301 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/{components → product}/Product.sol +83 -77
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +44 -21
- package/contracts/registry/IRegistryService.sol +37 -34
- package/contracts/registry/Registry.sol +191 -82
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +66 -82
- package/contracts/registry/RegistryServiceManager.sol +21 -25
- package/contracts/registry/ReleaseManager.sol +458 -183
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/AccessManagerCustom.sol +736 -0
- package/contracts/shared/AccessManagerExtended.sol +470 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +278 -0
- package/contracts/shared/ComponentService.sol +596 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +111 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/{components → shared}/IComponent.sol +23 -29
- package/contracts/shared/IComponentService.sol +91 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +2 -2
- package/contracts/shared/IPolicyHolder.sol +14 -7
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/IVersionable.sol +1 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +144 -0
- package/contracts/shared/KeyValueStore.sol +127 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +9 -5
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +3 -14
- package/contracts/shared/PolicyHolder.sol +32 -17
- package/contracts/shared/ProxyManager.sol +34 -4
- package/contracts/shared/Registerable.sol +3 -3
- package/contracts/shared/Service.sol +9 -4
- package/contracts/shared/TokenHandler.sol +27 -2
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +149 -0
- package/contracts/staking/StakeManagerLib.sol +179 -0
- package/contracts/staking/Staking.sol +551 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +406 -0
- package/contracts/staking/StakingServiceManager.sol +45 -0
- package/contracts/staking/StakingStore.sol +572 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/{types → type}/Amount.sol +59 -1
- package/contracts/{types → type}/Blocknumber.sol +20 -3
- package/contracts/{types → type}/Fee.sol +24 -22
- package/contracts/{types → type}/NftId.sol +14 -16
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/{types → type}/ObjectType.sol +15 -3
- package/contracts/{types → type}/Referral.sol +1 -1
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/{types → type}/RoleId.sol +55 -9
- package/contracts/{types → type}/Seconds.sol +27 -0
- package/contracts/{types → type}/StateId.sol +17 -4
- package/contracts/{types → type}/Version.sol +1 -1
- package/package.json +3 -3
- 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/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/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/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +0 -10
- 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 -1092
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -672
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1313
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -712
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1316
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -724
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
- 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 -1153
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -676
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1598
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -696
- 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/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- 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/Amount.sol/AmountLib.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
- 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/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- 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/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/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- 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/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/contracts/components/Component.sol +0 -253
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/InstanceAccessManager.sol +0 -527
- package/contracts/instance/base/ComponentService.sol +0 -130
- package/contracts/instance/base/KeyValueStore.sol +0 -149
- 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 -443
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/DistributionService.sol +0 -431
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -358
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -349
- 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/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/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/test/Usdc.sol +0 -26
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- /package/contracts/{types → type}/ClaimId.sol +0 -0
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/PayoutId.sol +0 -0
- /package/contracts/{types → type}/Timestamp.sol +0 -0
- /package/contracts/{types → type}/UFixed.sol +0 -0
@@ -0,0 +1,301 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
|
+
import {Seconds} from "../type/Seconds.sol";
|
6
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
7
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
8
|
+
import {NftId} from "../type/NftId.sol";
|
9
|
+
import {Fee} from "../type/Fee.sol";
|
10
|
+
import {ReferralId} from "../type/Referral.sol";
|
11
|
+
import {RiskId} from "../type/RiskId.sol";
|
12
|
+
import {PRODUCT, DISTRIBUTION, PRICE} from "../type/ObjectType.sol";
|
13
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
14
|
+
|
15
|
+
import {IProductComponent} from "./IProductComponent.sol";
|
16
|
+
|
17
|
+
import {IInstance} from "../instance/IInstance.sol";
|
18
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
19
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
20
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
21
|
+
import {IBundle} from "../instance/module/IBundle.sol";
|
22
|
+
import {IDistribution} from "../instance/module/IDistribution.sol";
|
23
|
+
|
24
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
25
|
+
|
26
|
+
import {IPricingService} from "./IPricingService.sol";
|
27
|
+
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
28
|
+
|
29
|
+
|
30
|
+
contract PricingService is
|
31
|
+
ComponentVerifyingService,
|
32
|
+
IPricingService
|
33
|
+
{
|
34
|
+
using UFixedLib for UFixed;
|
35
|
+
|
36
|
+
IDistributionService internal _distributionService;
|
37
|
+
|
38
|
+
|
39
|
+
function _initialize(
|
40
|
+
address owner,
|
41
|
+
bytes memory data
|
42
|
+
)
|
43
|
+
internal
|
44
|
+
virtual override
|
45
|
+
initializer()
|
46
|
+
{
|
47
|
+
(
|
48
|
+
address registryAddress,,
|
49
|
+
//address managerAddress
|
50
|
+
address authority
|
51
|
+
) = abi.decode(data, (address, address, address));
|
52
|
+
|
53
|
+
initializeService(registryAddress, authority, owner);
|
54
|
+
registerInterface(type(IPricingService).interfaceId);
|
55
|
+
|
56
|
+
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
57
|
+
}
|
58
|
+
|
59
|
+
|
60
|
+
function getDomain() public pure override returns(ObjectType) {
|
61
|
+
return PRICE();
|
62
|
+
}
|
63
|
+
|
64
|
+
/// @dev calculates the premium amount for the specified attributes
|
65
|
+
/// also returns the various fee components involved with creating a policy
|
66
|
+
function calculatePremium(
|
67
|
+
NftId productNftId,
|
68
|
+
RiskId riskId,
|
69
|
+
Amount sumInsuredAmount,
|
70
|
+
Seconds lifetime,
|
71
|
+
bytes memory applicationData,
|
72
|
+
NftId bundleNftId,
|
73
|
+
ReferralId referralId
|
74
|
+
)
|
75
|
+
external
|
76
|
+
view
|
77
|
+
virtual override
|
78
|
+
returns (
|
79
|
+
IPolicy.Premium memory premium
|
80
|
+
)
|
81
|
+
{
|
82
|
+
InstanceReader reader;
|
83
|
+
Amount netPremiumAmount;
|
84
|
+
|
85
|
+
{
|
86
|
+
// verify product
|
87
|
+
(
|
88
|
+
IRegistry.ObjectInfo memory registryInfo,
|
89
|
+
IInstance instance
|
90
|
+
) = _getAndVerifyComponentInfo(productNftId, PRODUCT());
|
91
|
+
|
92
|
+
reader = instance.getInstanceReader();
|
93
|
+
|
94
|
+
// calculate net premium
|
95
|
+
netPremiumAmount = IProductComponent(registryInfo.objectAddress).calculateNetPremium(
|
96
|
+
sumInsuredAmount,
|
97
|
+
riskId,
|
98
|
+
lifetime,
|
99
|
+
applicationData
|
100
|
+
);
|
101
|
+
}
|
102
|
+
|
103
|
+
{
|
104
|
+
// get configurations for all involed objects
|
105
|
+
IComponents.ProductInfo memory productInfo = reader.getProductInfo(productNftId);
|
106
|
+
|
107
|
+
IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
108
|
+
if(bundleInfo.poolNftId != productInfo.poolNftId) {
|
109
|
+
revert ErrorIPricingServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, productInfo.poolNftId);
|
110
|
+
}
|
111
|
+
|
112
|
+
// calculate premium, order is important
|
113
|
+
premium = _getFixedFeeAmounts(
|
114
|
+
netPremiumAmount,
|
115
|
+
productInfo,
|
116
|
+
bundleInfo
|
117
|
+
);
|
118
|
+
|
119
|
+
premium = _calculateVariableFeeAmounts(
|
120
|
+
premium,
|
121
|
+
productInfo,
|
122
|
+
bundleInfo
|
123
|
+
);
|
124
|
+
|
125
|
+
premium = _calculateDistributionOwnerFeeAmount(
|
126
|
+
premium,
|
127
|
+
productInfo,
|
128
|
+
referralId,
|
129
|
+
reader
|
130
|
+
);
|
131
|
+
|
132
|
+
premium = _calculateTargetWalletAmounts(premium);
|
133
|
+
|
134
|
+
// sanity check to validate the fee calculation
|
135
|
+
if(AmountLib.toAmount(premium.premiumAmount) !=
|
136
|
+
premium.productFeeAmount
|
137
|
+
+ premium.distributionFeeAndCommissionAmount
|
138
|
+
+ premium.poolPremiumAndFeeAmount)
|
139
|
+
{
|
140
|
+
revert ErrorPricingServiceTargetWalletAmountsMismatch();
|
141
|
+
}
|
142
|
+
|
143
|
+
if (premium.distributionOwnerFeeFixAmount < productInfo.minDistributionOwnerFee.fixedFee) {
|
144
|
+
revert ErrorIPricingServiceFeeCalculationMismatch(
|
145
|
+
premium.distributionFeeFixAmount,
|
146
|
+
premium.distributionFeeVarAmount,
|
147
|
+
premium.distributionOwnerFeeFixAmount,
|
148
|
+
premium.distributionOwnerFeeVarAmount,
|
149
|
+
premium.commissionAmount,
|
150
|
+
premium.discountAmount
|
151
|
+
);
|
152
|
+
}
|
153
|
+
|
154
|
+
if ((premium.distributionFeeVarAmount) != (premium.discountAmount + premium.distributionOwnerFeeVarAmount + premium.commissionAmount)) {
|
155
|
+
revert ErrorIPricingServiceFeeCalculationMismatch(
|
156
|
+
premium.distributionFeeFixAmount,
|
157
|
+
premium.distributionFeeVarAmount,
|
158
|
+
premium.distributionOwnerFeeFixAmount,
|
159
|
+
premium.distributionOwnerFeeVarAmount,
|
160
|
+
premium.commissionAmount,
|
161
|
+
premium.discountAmount
|
162
|
+
);
|
163
|
+
}
|
164
|
+
}
|
165
|
+
}
|
166
|
+
|
167
|
+
// internal functions
|
168
|
+
function _getFixedFeeAmounts(
|
169
|
+
Amount netPremiumAmount,
|
170
|
+
IComponents.ProductInfo memory productInfo,
|
171
|
+
IBundle.BundleInfo memory bundleInfo
|
172
|
+
)
|
173
|
+
internal
|
174
|
+
pure
|
175
|
+
returns (
|
176
|
+
IPolicy.Premium memory premium
|
177
|
+
)
|
178
|
+
{
|
179
|
+
// initial premium amount is the net premium
|
180
|
+
premium.netPremiumAmount = netPremiumAmount.toInt();
|
181
|
+
premium.fullPremiumAmount = netPremiumAmount.toInt();
|
182
|
+
|
183
|
+
uint256 t = productInfo.productFee.fixedFee;
|
184
|
+
premium.productFeeFixAmount = t;
|
185
|
+
premium.fullPremiumAmount += t;
|
186
|
+
|
187
|
+
t = productInfo.poolFee.fixedFee;
|
188
|
+
premium.poolFeeFixAmount = t;
|
189
|
+
premium.fullPremiumAmount += t;
|
190
|
+
|
191
|
+
t = bundleInfo.fee.fixedFee;
|
192
|
+
premium.bundleFeeFixAmount = t;
|
193
|
+
premium.fullPremiumAmount += t;
|
194
|
+
|
195
|
+
t = productInfo.distributionFee.fixedFee;
|
196
|
+
premium.distributionFeeFixAmount = t;
|
197
|
+
premium.fullPremiumAmount += t;
|
198
|
+
}
|
199
|
+
|
200
|
+
function _calculateVariableFeeAmounts(
|
201
|
+
IPolicy.Premium memory premium,
|
202
|
+
IComponents.ProductInfo memory productInfo,
|
203
|
+
IBundle.BundleInfo memory bundleInfo
|
204
|
+
)
|
205
|
+
internal
|
206
|
+
pure
|
207
|
+
returns (
|
208
|
+
IPolicy.Premium memory intermadiatePremium
|
209
|
+
)
|
210
|
+
{
|
211
|
+
UFixed netPremiumAmount = UFixedLib.toUFixed(premium.netPremiumAmount);
|
212
|
+
|
213
|
+
uint256 t = (netPremiumAmount * productInfo.productFee.fractionalFee).toInt();
|
214
|
+
premium.productFeeVarAmount = t;
|
215
|
+
premium.fullPremiumAmount += t;
|
216
|
+
|
217
|
+
t = (netPremiumAmount * productInfo.poolFee.fractionalFee).toInt();
|
218
|
+
premium.poolFeeVarAmount = t;
|
219
|
+
premium.fullPremiumAmount += t;
|
220
|
+
|
221
|
+
t = (netPremiumAmount * bundleInfo.fee.fractionalFee).toInt();
|
222
|
+
premium.bundleFeeVarAmount = t;
|
223
|
+
premium.fullPremiumAmount += t;
|
224
|
+
|
225
|
+
t = (netPremiumAmount * productInfo.distributionFee.fractionalFee).toInt();
|
226
|
+
premium.distributionFeeVarAmount = t;
|
227
|
+
premium.fullPremiumAmount += t;
|
228
|
+
|
229
|
+
return premium;
|
230
|
+
}
|
231
|
+
|
232
|
+
function _calculateDistributionOwnerFeeAmount(
|
233
|
+
IPolicy.Premium memory premium,
|
234
|
+
IComponents.ProductInfo memory productInfo,
|
235
|
+
// ISetup.DistributionSetupInfo memory distInfo,
|
236
|
+
ReferralId referralId,
|
237
|
+
InstanceReader reader
|
238
|
+
)
|
239
|
+
internal
|
240
|
+
view
|
241
|
+
returns (IPolicy.Premium memory finalPremium)
|
242
|
+
{
|
243
|
+
|
244
|
+
// if the referral is not valid, then the distribution owner gets everything
|
245
|
+
if (! _distributionService.referralIsValid(productInfo.distributionNftId, referralId)) {
|
246
|
+
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
247
|
+
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
248
|
+
premium.premiumAmount = premium.fullPremiumAmount;
|
249
|
+
return premium;
|
250
|
+
}
|
251
|
+
|
252
|
+
Fee memory minDistributionOwnerFee = productInfo.minDistributionOwnerFee;
|
253
|
+
|
254
|
+
// if the referral is valid, the the commission and discount are calculated based in the full premium
|
255
|
+
// the remaing amount goes to the distribution owner
|
256
|
+
{
|
257
|
+
IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
|
258
|
+
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
259
|
+
IDistribution.DistributorTypeInfo memory distributorTypeInfo = reader.getDistributorTypeInfo(distributorInfo.distributorType);
|
260
|
+
|
261
|
+
uint256 commissionAmount = UFixedLib.toUFixed(premium.netPremiumAmount).mul(distributorTypeInfo.commissionPercentage).toInt();
|
262
|
+
premium.commissionAmount = commissionAmount;
|
263
|
+
premium.discountAmount = UFixedLib.toUFixed(premium.fullPremiumAmount).mul(referralInfo.discountPercentage).toInt();
|
264
|
+
premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
|
265
|
+
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount - commissionAmount - premium.discountAmount;
|
266
|
+
premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
|
267
|
+
}
|
268
|
+
|
269
|
+
return premium;
|
270
|
+
}
|
271
|
+
|
272
|
+
|
273
|
+
function _calculateTargetWalletAmounts(
|
274
|
+
IPolicy.Premium memory premium
|
275
|
+
)
|
276
|
+
internal
|
277
|
+
virtual
|
278
|
+
view
|
279
|
+
returns (
|
280
|
+
IPolicy.Premium memory premiumWithTargetWalletAmounts
|
281
|
+
)
|
282
|
+
{
|
283
|
+
// fees for product owner
|
284
|
+
premium.productFeeAmount = AmountLib.toAmount(
|
285
|
+
premium.productFeeFixAmount + premium.productFeeVarAmount);
|
286
|
+
|
287
|
+
// fees for distribution owner + distributor commission
|
288
|
+
premium.distributionFeeAndCommissionAmount = AmountLib.toAmount(
|
289
|
+
premium.distributionFeeFixAmount + premium.distributionOwnerFeeVarAmount
|
290
|
+
+ premium.commissionAmount);
|
291
|
+
|
292
|
+
// net premium + fees for pool owner + bundle owner
|
293
|
+
premium.poolPremiumAndFeeAmount = AmountLib.toAmount(
|
294
|
+
premium.netPremiumAmount
|
295
|
+
+ premium.poolFeeFixAmount + premium.poolFeeVarAmount
|
296
|
+
+ premium.bundleFeeFixAmount + premium.bundleFeeVarAmount);
|
297
|
+
|
298
|
+
premiumWithTargetWalletAmounts = premium;
|
299
|
+
}
|
300
|
+
|
301
|
+
}
|
@@ -0,0 +1,42 @@
|
|
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 {PricingService} from "./PricingService.sol";
|
7
|
+
import {Registry} from "../registry/Registry.sol";
|
8
|
+
import {RegistryService} from "../registry/RegistryService.sol";
|
9
|
+
import {REGISTRY} from "../type/ObjectType.sol";
|
10
|
+
|
11
|
+
contract PricingServiceManager is ProxyManager {
|
12
|
+
|
13
|
+
PricingService private _pricingService;
|
14
|
+
|
15
|
+
/// @dev initializes proxy manager with pricing service implementation and deploys instance
|
16
|
+
constructor(
|
17
|
+
address authority,
|
18
|
+
address registryAddress,
|
19
|
+
bytes32 salt
|
20
|
+
)
|
21
|
+
ProxyManager(registryAddress)
|
22
|
+
{
|
23
|
+
PricingService pricingSrv = new PricingService{salt: salt}();
|
24
|
+
bytes memory data = abi.encode(registryAddress, address(this), authority);
|
25
|
+
IVersionable versionable = deployDetermenistic(
|
26
|
+
address(pricingSrv),
|
27
|
+
data,
|
28
|
+
salt);
|
29
|
+
|
30
|
+
_pricingService = PricingService(address(versionable));
|
31
|
+
}
|
32
|
+
|
33
|
+
//--- view functions ----------------------------------------------------//
|
34
|
+
function getPricingService()
|
35
|
+
external
|
36
|
+
view
|
37
|
+
returns (PricingService)
|
38
|
+
{
|
39
|
+
return _pricingService;
|
40
|
+
}
|
41
|
+
|
42
|
+
}
|
@@ -1,38 +1,39 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
|
-
import {Amount} from "../
|
7
|
-
import {ClaimId} from "../
|
8
|
-
import {
|
9
|
-
import {Fee} from "../
|
6
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
8
|
+
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
9
|
+
import {Fee, FeeLib} from "../type/Fee.sol";
|
10
10
|
import {IRisk} from "../instance/module/IRisk.sol";
|
11
|
-
import {IApplicationService} from "
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
11
|
+
import {IApplicationService} from "./IApplicationService.sol";
|
12
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
13
|
+
import {IPolicyService} from "./IPolicyService.sol";
|
14
|
+
import {IProductService} from "./IProductService.sol";
|
15
|
+
import {IClaimService} from "./IClaimService.sol";
|
16
|
+
import {IPricingService} from "./IPricingService.sol";
|
15
17
|
import {IProductComponent} from "./IProductComponent.sol";
|
16
|
-
import {NftId, NftIdLib} from "../
|
17
|
-
import {PayoutId} from "../
|
18
|
-
import {PRODUCT, APPLICATION, POLICY, CLAIM } from "../
|
19
|
-
import {ReferralId} from "../
|
20
|
-
import {RiskId, RiskIdLib} from "../
|
21
|
-
import {Seconds} from "../
|
22
|
-
import {StateId} from "../
|
23
|
-
import {Timestamp} from "../
|
18
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
19
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
20
|
+
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
21
|
+
import {ReferralId} from "../type/Referral.sol";
|
22
|
+
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
23
|
+
import {Seconds} from "../type/Seconds.sol";
|
24
|
+
import {StateId} from "../type/StateId.sol";
|
25
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
24
26
|
|
25
27
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
26
28
|
|
27
29
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
28
30
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
29
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
30
31
|
import {IComponents} from "../instance/module/IComponents.sol";
|
31
|
-
import {Pool} from "../
|
32
|
-
import {Distribution} from "../
|
32
|
+
import {Pool} from "../pool/Pool.sol";
|
33
|
+
import {Distribution} from "../distribution/Distribution.sol";
|
33
34
|
|
34
35
|
abstract contract Product is
|
35
|
-
|
36
|
+
InstanceLinkedComponent,
|
36
37
|
IProductComponent
|
37
38
|
{
|
38
39
|
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.Product")) - 1)) & ~bytes32(uint256(0xff));
|
@@ -43,33 +44,31 @@ abstract contract Product is
|
|
43
44
|
IApplicationService _applicationService;
|
44
45
|
IPolicyService _policyService;
|
45
46
|
IClaimService _claimService;
|
46
|
-
|
47
|
-
|
48
|
-
Fee _initialProductFee;
|
49
|
-
Fee _initialProcessingFee;
|
50
|
-
TokenHandler _tokenHandler;
|
47
|
+
IPricingService _pricingService;
|
48
|
+
IComponentService _componentService;
|
51
49
|
NftId _poolNftId;
|
52
50
|
NftId _distributionNftId;
|
51
|
+
Pool _pool;
|
52
|
+
Distribution _distribution;
|
53
53
|
}
|
54
54
|
|
55
55
|
function initializeProduct(
|
56
56
|
address registry,
|
57
57
|
NftId instanceNftId,
|
58
|
+
address initialOwner,
|
58
59
|
string memory name,
|
59
60
|
address token,
|
60
61
|
bool isInterceptor,
|
61
62
|
address pool,
|
62
63
|
address distribution,
|
63
|
-
|
64
|
-
|
65
|
-
address initialOwner,
|
66
|
-
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
64
|
+
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
65
|
+
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
67
66
|
)
|
68
67
|
public
|
69
68
|
virtual
|
70
69
|
onlyInitializing()
|
71
70
|
{
|
72
|
-
|
71
|
+
initializeInstanceLinkedComponent(registry, instanceNftId, name, token, PRODUCT(), isInterceptor, initialOwner, registryData, componentData);
|
73
72
|
|
74
73
|
ProductStorage storage $ = _getProductStorage();
|
75
74
|
// TODO add validation
|
@@ -78,18 +77,26 @@ abstract contract Product is
|
|
78
77
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
79
78
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
80
79
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
80
|
+
$._pricingService = IPricingService(_getServiceAddress(PRICE()));
|
81
|
+
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
81
82
|
$._pool = Pool(pool);
|
82
83
|
$._distribution = Distribution(distribution);
|
83
|
-
$._initialProductFee = productFee;
|
84
|
-
$._initialProcessingFee = processingFee;
|
85
|
-
$._tokenHandler = new TokenHandler(token);
|
86
84
|
$._poolNftId = getRegistry().getNftId(pool);
|
87
85
|
$._distributionNftId = getRegistry().getNftId(distribution);
|
88
86
|
|
89
87
|
registerInterface(type(IProductComponent).interfaceId);
|
90
88
|
}
|
91
89
|
|
92
|
-
|
90
|
+
|
91
|
+
function register()
|
92
|
+
external
|
93
|
+
virtual
|
94
|
+
onlyOwner()
|
95
|
+
{
|
96
|
+
_getProductStorage()._componentService.registerProduct();
|
97
|
+
}
|
98
|
+
|
99
|
+
|
93
100
|
function setFees(
|
94
101
|
Fee memory productFee,
|
95
102
|
Fee memory processingFee
|
@@ -99,7 +106,7 @@ abstract contract Product is
|
|
99
106
|
restricted()
|
100
107
|
override
|
101
108
|
{
|
102
|
-
|
109
|
+
_getProductStorage()._componentService.setProductFees(productFee, processingFee);
|
103
110
|
}
|
104
111
|
|
105
112
|
function _createRisk(
|
@@ -139,7 +146,7 @@ abstract contract Product is
|
|
139
146
|
function _createApplication(
|
140
147
|
address applicationOwner,
|
141
148
|
RiskId riskId,
|
142
|
-
|
149
|
+
Amount sumInsuredAmount,
|
143
150
|
Seconds lifetime,
|
144
151
|
NftId bundleNftId,
|
145
152
|
ReferralId referralId,
|
@@ -220,25 +227,29 @@ abstract contract Product is
|
|
220
227
|
function _confirmClaim(
|
221
228
|
NftId policyNftId,
|
222
229
|
ClaimId claimId,
|
223
|
-
Amount confirmedAmount
|
230
|
+
Amount confirmedAmount,
|
231
|
+
bytes memory data
|
224
232
|
)
|
225
233
|
internal
|
226
234
|
{
|
227
235
|
_getProductStorage()._claimService.confirm(
|
228
236
|
policyNftId,
|
229
237
|
claimId,
|
230
|
-
confirmedAmount
|
238
|
+
confirmedAmount,
|
239
|
+
data);
|
231
240
|
}
|
232
241
|
|
233
242
|
function _declineClaim(
|
234
243
|
NftId policyNftId,
|
235
|
-
ClaimId claimId
|
244
|
+
ClaimId claimId,
|
245
|
+
bytes memory data
|
236
246
|
)
|
237
247
|
internal
|
238
248
|
{
|
239
249
|
_getProductStorage()._claimService.decline(
|
240
250
|
policyNftId,
|
241
|
-
claimId
|
251
|
+
claimId,
|
252
|
+
data);
|
242
253
|
}
|
243
254
|
|
244
255
|
function _closeClaim(
|
@@ -280,7 +291,7 @@ abstract contract Product is
|
|
280
291
|
}
|
281
292
|
|
282
293
|
function calculatePremium(
|
283
|
-
|
294
|
+
Amount sumInsuredAmount,
|
284
295
|
RiskId riskId,
|
285
296
|
Seconds lifetime,
|
286
297
|
bytes memory applicationData,
|
@@ -290,9 +301,9 @@ abstract contract Product is
|
|
290
301
|
external
|
291
302
|
view
|
292
303
|
override
|
293
|
-
returns (
|
304
|
+
returns (Amount premiumAmount)
|
294
305
|
{
|
295
|
-
IPolicy.Premium memory premium = _getProductStorage().
|
306
|
+
IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
|
296
307
|
getNftId(),
|
297
308
|
riskId,
|
298
309
|
sumInsuredAmount,
|
@@ -301,11 +312,12 @@ abstract contract Product is
|
|
301
312
|
bundleNftId,
|
302
313
|
referralId
|
303
314
|
);
|
304
|
-
|
315
|
+
|
316
|
+
return AmountLib.toAmount(premium.premiumAmount);
|
305
317
|
}
|
306
318
|
|
307
319
|
function calculateNetPremium(
|
308
|
-
|
320
|
+
Amount sumInsuredAmount,
|
309
321
|
RiskId riskId,
|
310
322
|
Seconds lifetime,
|
311
323
|
bytes memory applicationData
|
@@ -313,14 +325,32 @@ abstract contract Product is
|
|
313
325
|
external
|
314
326
|
view
|
315
327
|
virtual override
|
316
|
-
returns (
|
328
|
+
returns (Amount netPremiumAmount)
|
317
329
|
{
|
318
330
|
// default 10% of sum insured
|
319
|
-
return sumInsuredAmount / 10;
|
331
|
+
return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
|
320
332
|
}
|
321
333
|
|
322
|
-
|
323
|
-
|
334
|
+
|
335
|
+
function getInitialProductInfo()
|
336
|
+
public
|
337
|
+
virtual
|
338
|
+
view
|
339
|
+
returns (IComponents.ProductInfo memory poolInfo)
|
340
|
+
{
|
341
|
+
ProductStorage storage $ = _getProductStorage();
|
342
|
+
|
343
|
+
return IComponents.ProductInfo({
|
344
|
+
distributionNftId: $._distributionNftId,
|
345
|
+
poolNftId: $._poolNftId,
|
346
|
+
productFee: FeeLib.zero(),
|
347
|
+
processingFee: FeeLib.zero(),
|
348
|
+
distributionFee: FeeLib.zero(),
|
349
|
+
minDistributionOwnerFee: FeeLib.zero(),
|
350
|
+
poolFee: FeeLib.zero(),
|
351
|
+
stakingFee: FeeLib.zero(),
|
352
|
+
performanceFee: FeeLib.zero()
|
353
|
+
});
|
324
354
|
}
|
325
355
|
|
326
356
|
function getPoolNftId() external view override returns (NftId poolNftId) {
|
@@ -331,32 +361,8 @@ abstract contract Product is
|
|
331
361
|
return getRegistry().getNftId(address(_getProductStorage()._distribution));
|
332
362
|
}
|
333
363
|
|
334
|
-
function
|
335
|
-
|
336
|
-
setupInfo = reader.getProductSetupInfo(getNftId());
|
337
|
-
|
338
|
-
// fallback to initial setup info (wallet is always != address(0))
|
339
|
-
if(setupInfo.wallet == address(0)) {
|
340
|
-
setupInfo = _getInitialSetupInfo();
|
341
|
-
}
|
342
|
-
}
|
343
|
-
|
344
|
-
function _getInitialSetupInfo() internal view returns (ISetup.ProductSetupInfo memory setupInfo) {
|
345
|
-
ProductStorage storage $ = _getProductStorage();
|
346
|
-
|
347
|
-
ISetup.DistributionSetupInfo memory distributionSetupInfo = $._distribution.getSetupInfo();
|
348
|
-
IComponents.PoolInfo memory poolInfo = $._pool.getPoolInfo();
|
349
|
-
|
350
|
-
return ISetup.ProductSetupInfo(
|
351
|
-
getToken(),
|
352
|
-
$._tokenHandler,
|
353
|
-
$._distributionNftId,
|
354
|
-
$._poolNftId,
|
355
|
-
$._initialProductFee,
|
356
|
-
$._initialProcessingFee,
|
357
|
-
false,
|
358
|
-
getWallet()
|
359
|
-
);
|
364
|
+
function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
|
365
|
+
return RiskIdLib.toRiskId(riskName);
|
360
366
|
}
|
361
367
|
|
362
368
|
function _getProductStorage() private pure returns (ProductStorage storage $) {
|
@@ -368,4 +374,4 @@ abstract contract Product is
|
|
368
374
|
function _getProductService() internal view returns (IProductService) {
|
369
375
|
return _getProductStorage()._productService;
|
370
376
|
}
|
371
|
-
}
|
377
|
+
}
|