@etherisc/gif-next 0.0.2-e9a637d-547 → 0.0.2-ead1eb0-841
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 +6 -12
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +61 -14
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +780 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +45 -14
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +24 -274
- 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 +93 -13
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +5 -43
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +109 -29
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +6 -6
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +349 -64
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +49 -278
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +39 -128
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +427 -257
- 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/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +61 -12
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +8 -8
- 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/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/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +696 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +105 -29
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +56 -25
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +272 -39
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +56 -25
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +708 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +648 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1386 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +748 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +119 -101
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +129 -84
- 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} +63 -175
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +53 -22
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +6 -14
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +740 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +688 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/Product.sol/Product.json +53 -22
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +640 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +5 -13
- 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 +6 -6
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +4 -4
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +21 -29
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -40
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +9 -9
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +14 -27
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +3 -3
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +38 -7
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ComponentService.sol/ComponentService.json +38 -14
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +38 -7
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +0 -13
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +69 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +0 -13
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +5 -13
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +8 -21
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +80 -26
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +20 -33
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -21
- 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 +5 -13
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -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/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +523 -0
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +628 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +767 -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 +281 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{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/{types → type}/NftId.sol/NftIdLib.json +5 -5
- 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/type/PayoutId.sol/PayoutIdLib.json +209 -0
- 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/{types → type}/Seconds.sol/SecondsLib.json +3 -3
- 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 +20 -7
- 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 +21 -16
- package/contracts/{instance/service → distribution}/DistributionService.sol +85 -173
- package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +5 -5
- package/contracts/{components → distribution}/IDistributionComponent.sol +7 -7
- package/contracts/{instance/service → distribution}/IDistributionService.sol +18 -30
- package/contracts/instance/BundleManager.sol +8 -9
- package/contracts/instance/IInstance.sol +30 -13
- package/contracts/instance/IInstanceService.sol +6 -17
- package/contracts/instance/Instance.sol +76 -46
- package/contracts/instance/InstanceAccessManager.sol +8 -5
- package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
- package/contracts/instance/InstanceReader.sol +91 -16
- package/contracts/instance/InstanceService.sol +75 -297
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +57 -65
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
- package/contracts/instance/base/IKeyValueStore.sol +14 -10
- package/contracts/instance/base/ILifecycle.sol +3 -3
- package/contracts/instance/base/KeyValueStore.sol +32 -43
- package/contracts/instance/base/Lifecycle.sol +17 -5
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +7 -7
- package/contracts/instance/module/IAccess.sol +2 -2
- package/contracts/instance/module/IBundle.sol +5 -5
- package/contracts/instance/module/IComponents.sol +8 -8
- package/contracts/instance/module/IDistribution.sol +7 -6
- package/contracts/instance/module/IPolicy.sol +22 -16
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/instance/module/ISetup.sol +4 -4
- package/contracts/instance/module/ITreasury.sol +2 -2
- package/contracts/{instance/service → pool}/BundleService.sol +95 -144
- package/contracts/{instance/service → pool}/BundleServiceManager.sol +5 -5
- package/contracts/{instance/service → pool}/IBundleService.sol +43 -18
- package/contracts/{components → pool}/IPoolComponent.sol +14 -13
- package/contracts/{instance/service → pool}/IPoolService.sol +28 -13
- package/contracts/{components → pool}/Pool.sol +20 -21
- package/contracts/{instance/service → pool}/PoolService.sol +149 -49
- package/contracts/{instance/service → pool}/PoolServiceManager.sol +5 -5
- package/contracts/product/ApplicationService.sol +186 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +2 -2
- package/contracts/product/ClaimService.sol +442 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +2 -2
- package/contracts/{instance/service → product}/IApplicationService.sol +14 -34
- package/contracts/product/IClaimService.sol +93 -0
- package/contracts/{instance/service → product}/IPolicyService.sol +34 -26
- package/contracts/product/IPricingService.sol +37 -0
- package/contracts/{components → product}/IProductComponent.sol +11 -10
- package/contracts/{instance/service → product}/IProductService.sol +10 -10
- package/contracts/{instance/service → product}/PolicyService.sol +148 -134
- package/contracts/{instance/service → product}/PolicyServiceManager.sol +5 -5
- package/contracts/product/PricingService.sol +275 -0
- package/contracts/product/PricingServiceManager.sol +51 -0
- package/contracts/{components → product}/Product.sol +160 -74
- package/contracts/{instance/service → product}/ProductService.sol +44 -43
- package/contracts/{instance/service → product}/ProductServiceManager.sol +5 -5
- package/contracts/registry/IRegistry.sol +4 -4
- package/contracts/registry/IRegistryService.sol +4 -6
- package/contracts/registry/Registry.sol +3 -3
- package/contracts/registry/RegistryAccessManager.sol +2 -2
- package/contracts/registry/RegistryService.sol +23 -20
- package/contracts/registry/RegistryServiceManager.sol +0 -2
- package/contracts/registry/ReleaseManager.sol +12 -8
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/{components → shared}/Component.sol +26 -8
- package/contracts/{instance/base → shared}/ComponentService.sol +63 -34
- package/contracts/{components → shared}/IComponent.sol +19 -5
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +24 -10
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +3 -1
- package/contracts/shared/IVersionable.sol +1 -1
- package/contracts/shared/NftOwnable.sol +1 -3
- package/contracts/shared/PolicyHolder.sol +31 -18
- package/contracts/shared/ProxyManager.sol +3 -3
- package/contracts/shared/Registerable.sol +12 -11
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/Service.sol +3 -3
- package/contracts/shared/TokenHandler.sol +4 -2
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/staking/IStakingService.sol +102 -0
- package/contracts/staking/StakeingServiceManager.sol +37 -0
- package/contracts/staking/StakingService.sol +166 -0
- package/contracts/{types → type}/Amount.sol +49 -0
- package/contracts/{types → type}/ClaimId.sol +25 -2
- package/contracts/{types → type}/Fee.sol +7 -6
- package/contracts/{types → type}/NftIdSet.sol +1 -1
- package/contracts/{types → type}/ObjectType.sol +10 -5
- package/contracts/{types → type}/PayoutId.sol +33 -5
- package/contracts/{types → type}/RoleId.sol +44 -9
- package/contracts/{types → type}/StateId.sol +6 -2
- package/contracts/{types → type}/Timestamp.sol +5 -0
- package/package.json +1 -1
- 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/Cloneable.sol/Cloneable.dbg.json +0 -4
- 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/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
- 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 -805
- 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 -1092
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
- 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 -383
- 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 -596
- 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 -161
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
- 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/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/PayoutId.sol/PayoutIdLib.json +0 -100
- 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/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/instance/service/ApplicationService.sol +0 -351
- package/contracts/instance/service/ClaimService.sol +0 -151
- package/contracts/instance/service/IClaimService.sol +0 -61
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/test/Usdc.sol +0 -26
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- /package/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol +0 -0
- /package/contracts/{types → type}/AddressSet.sol +0 -0
- /package/contracts/{types → type}/Blocknumber.sol +0 -0
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/NftId.sol +0 -0
- /package/contracts/{types → type}/Referral.sol +0 -0
- /package/contracts/{types → type}/RiskId.sol +0 -0
- /package/contracts/{types → type}/Seconds.sol +0 -0
- /package/contracts/{types → type}/UFixed.sol +0 -0
- /package/contracts/{types → type}/Version.sol +0 -0
@@ -1,351 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRisk} from "../module/IRisk.sol";
|
5
|
-
import {IService} from "./IApplicationService.sol";
|
6
|
-
|
7
|
-
import {IRegistry} from "../../registry/IRegistry.sol";
|
8
|
-
import {IProductComponent} from "../../components/IProductComponent.sol";
|
9
|
-
import {Product} from "../../components/Product.sol";
|
10
|
-
import {IPoolComponent} from "../../components/IPoolComponent.sol";
|
11
|
-
import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
|
12
|
-
import {IInstance} from "../IInstance.sol";
|
13
|
-
import {IComponents} from "../module/IComponents.sol";
|
14
|
-
import {IPolicy} from "../module/IPolicy.sol";
|
15
|
-
import {IRisk} from "../module/IRisk.sol";
|
16
|
-
import {IBundle} from "../module/IBundle.sol";
|
17
|
-
import {IProductService} from "./IProductService.sol";
|
18
|
-
import {ITreasury} from "../module/ITreasury.sol";
|
19
|
-
import {ISetup} from "../module/ISetup.sol";
|
20
|
-
|
21
|
-
import {TokenHandler} from "../../shared/TokenHandler.sol";
|
22
|
-
|
23
|
-
import {IVersionable} from "../../shared/IVersionable.sol";
|
24
|
-
import {Versionable} from "../../shared/Versionable.sol";
|
25
|
-
|
26
|
-
import {Seconds} from "../../types/Seconds.sol";
|
27
|
-
import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
|
28
|
-
import {UFixed, UFixedLib} from "../../types/UFixed.sol";
|
29
|
-
import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
|
30
|
-
import {ObjectType, DISTRIBUTION, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, BUNDLE} from "../../types/ObjectType.sol";
|
31
|
-
import {APPLIED, REVOKED, UNDERWRITTEN, ACTIVE, KEEP_STATE, CLOSED} from "../../types/StateId.sol";
|
32
|
-
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
33
|
-
import {Fee, FeeLib} from "../../types/Fee.sol";
|
34
|
-
import {ReferralId} from "../../types/Referral.sol";
|
35
|
-
import {RiskId} from "../../types/RiskId.sol";
|
36
|
-
import {StateId} from "../../types/StateId.sol";
|
37
|
-
import {Version, VersionLib} from "../../types/Version.sol";
|
38
|
-
|
39
|
-
import {ComponentService} from "../base/ComponentService.sol";
|
40
|
-
import {InstanceReader} from "../InstanceReader.sol";
|
41
|
-
import {IApplicationService} from "./IApplicationService.sol";
|
42
|
-
import {IBundleService} from "./IBundleService.sol";
|
43
|
-
import {IDistributionService} from "./IDistributionService.sol";
|
44
|
-
import {IPoolService} from "./IPoolService.sol";
|
45
|
-
import {IService} from "../../shared/IService.sol";
|
46
|
-
import {Service} from "../../shared/Service.sol";
|
47
|
-
import {InstanceStore} from "../InstanceStore.sol";
|
48
|
-
|
49
|
-
|
50
|
-
contract ApplicationService is
|
51
|
-
ComponentService,
|
52
|
-
IApplicationService
|
53
|
-
{
|
54
|
-
IDistributionService internal _distributionService;
|
55
|
-
|
56
|
-
function _initialize(
|
57
|
-
address owner,
|
58
|
-
bytes memory data
|
59
|
-
)
|
60
|
-
internal
|
61
|
-
virtual override
|
62
|
-
initializer()
|
63
|
-
{
|
64
|
-
// TODO check this, might no longer be the way, refactor if necessary
|
65
|
-
address registryAddress;
|
66
|
-
address initialOwner;
|
67
|
-
(registryAddress, initialOwner) = abi.decode(data, (address, address));
|
68
|
-
|
69
|
-
initializeService(registryAddress, address(0), owner);
|
70
|
-
registerInterface(type(IApplicationService).interfaceId);
|
71
|
-
|
72
|
-
_distributionService = IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), getVersion().toMajorPart()));
|
73
|
-
}
|
74
|
-
|
75
|
-
|
76
|
-
function getDomain() public pure override returns(ObjectType) {
|
77
|
-
return APPLICATION();
|
78
|
-
}
|
79
|
-
|
80
|
-
|
81
|
-
function create(
|
82
|
-
address applicationOwner,
|
83
|
-
RiskId riskId,
|
84
|
-
uint256 sumInsuredAmount,
|
85
|
-
Seconds lifetime,
|
86
|
-
NftId bundleNftId,
|
87
|
-
ReferralId referralId,
|
88
|
-
bytes memory applicationData
|
89
|
-
)
|
90
|
-
external
|
91
|
-
virtual
|
92
|
-
returns (NftId applicationNftId)
|
93
|
-
{
|
94
|
-
(NftId productNftId,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
95
|
-
// TODO: add validations (see create bundle in pool service)
|
96
|
-
|
97
|
-
applicationNftId = getRegistryService().registerPolicy(
|
98
|
-
IRegistry.ObjectInfo(
|
99
|
-
zeroNftId(),
|
100
|
-
productNftId,
|
101
|
-
POLICY(),
|
102
|
-
false, // intercepting property for policies is defined on product
|
103
|
-
address(0),
|
104
|
-
applicationOwner,
|
105
|
-
""
|
106
|
-
)
|
107
|
-
);
|
108
|
-
|
109
|
-
// (uint256 premiumAmount,,,,,) = calculatePremium(
|
110
|
-
IPolicy.Premium memory premium = calculatePremium(
|
111
|
-
productNftId,
|
112
|
-
riskId,
|
113
|
-
sumInsuredAmount,
|
114
|
-
lifetime,
|
115
|
-
applicationData,
|
116
|
-
bundleNftId,
|
117
|
-
referralId
|
118
|
-
);
|
119
|
-
|
120
|
-
IPolicy.PolicyInfo memory policyInfo = IPolicy.PolicyInfo(
|
121
|
-
productNftId,
|
122
|
-
bundleNftId,
|
123
|
-
referralId,
|
124
|
-
riskId,
|
125
|
-
sumInsuredAmount,
|
126
|
-
premium.premiumAmount,
|
127
|
-
0,
|
128
|
-
lifetime,
|
129
|
-
applicationData,
|
130
|
-
"",
|
131
|
-
0,
|
132
|
-
0,
|
133
|
-
0,
|
134
|
-
zeroTimestamp(),
|
135
|
-
zeroTimestamp(),
|
136
|
-
zeroTimestamp()
|
137
|
-
);
|
138
|
-
|
139
|
-
instance.getInstanceStore().createApplication(applicationNftId, policyInfo);
|
140
|
-
|
141
|
-
// TODO: add logging
|
142
|
-
}
|
143
|
-
|
144
|
-
|
145
|
-
function renew(
|
146
|
-
NftId policyNftId, // policy to be renewd (renewal inherits policy attributes)
|
147
|
-
NftId bundleNftId // will likely need a newer bundle for underwriting
|
148
|
-
)
|
149
|
-
external
|
150
|
-
virtual override
|
151
|
-
returns (NftId applicationNftId)
|
152
|
-
{
|
153
|
-
|
154
|
-
}
|
155
|
-
|
156
|
-
|
157
|
-
function adjust(
|
158
|
-
NftId applicationNftId,
|
159
|
-
RiskId riskId,
|
160
|
-
NftId bundleNftId,
|
161
|
-
ReferralId referralId,
|
162
|
-
uint256 sumInsuredAmount,
|
163
|
-
uint256 lifetime,
|
164
|
-
bytes memory applicationData
|
165
|
-
)
|
166
|
-
external
|
167
|
-
virtual override
|
168
|
-
{
|
169
|
-
|
170
|
-
}
|
171
|
-
|
172
|
-
function revoke(NftId applicationNftId)
|
173
|
-
external
|
174
|
-
virtual override
|
175
|
-
{
|
176
|
-
(,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
177
|
-
instance.getInstanceStore().updateApplicationState(applicationNftId, REVOKED());
|
178
|
-
}
|
179
|
-
|
180
|
-
// TODO: maybe move this to a pricing service later
|
181
|
-
function calculatePremium(
|
182
|
-
NftId productNftId,
|
183
|
-
RiskId riskId,
|
184
|
-
uint256 sumInsuredAmount,
|
185
|
-
Seconds lifetime,
|
186
|
-
bytes memory applicationData,
|
187
|
-
NftId bundleNftId,
|
188
|
-
ReferralId referralId
|
189
|
-
)
|
190
|
-
public
|
191
|
-
view
|
192
|
-
virtual override
|
193
|
-
returns (
|
194
|
-
IPolicy.Premium memory premium
|
195
|
-
)
|
196
|
-
{
|
197
|
-
uint256 netPremiumAmount = _getAndVerifyProduct(productNftId).calculateNetPremium(
|
198
|
-
sumInsuredAmount,
|
199
|
-
riskId,
|
200
|
-
lifetime,
|
201
|
-
applicationData
|
202
|
-
);
|
203
|
-
|
204
|
-
premium = _getFixedFeeAmounts(
|
205
|
-
netPremiumAmount,
|
206
|
-
_getAndVerifyProduct(productNftId),
|
207
|
-
bundleNftId,
|
208
|
-
referralId
|
209
|
-
);
|
210
|
-
|
211
|
-
(
|
212
|
-
premium
|
213
|
-
) = _calculateVariableFeeAmounts(
|
214
|
-
premium,
|
215
|
-
_getAndVerifyProduct(productNftId),
|
216
|
-
bundleNftId,
|
217
|
-
referralId
|
218
|
-
);
|
219
|
-
}
|
220
|
-
|
221
|
-
|
222
|
-
// internal functions
|
223
|
-
function _getFixedFeeAmounts(
|
224
|
-
uint256 netPremiumAmount,
|
225
|
-
Product product,
|
226
|
-
NftId bundleNftId,
|
227
|
-
ReferralId referralId
|
228
|
-
)
|
229
|
-
internal
|
230
|
-
view
|
231
|
-
returns (
|
232
|
-
IPolicy.Premium memory premium
|
233
|
-
)
|
234
|
-
{
|
235
|
-
InstanceReader instanceReader;
|
236
|
-
{
|
237
|
-
IInstance instance = product.getInstance();
|
238
|
-
instanceReader = instance.getInstanceReader();
|
239
|
-
}
|
240
|
-
|
241
|
-
NftId poolNftId = product.getPoolNftId();
|
242
|
-
premium = IPolicy.Premium(
|
243
|
-
netPremiumAmount, // net premium
|
244
|
-
netPremiumAmount, // full premium
|
245
|
-
0, // premium
|
246
|
-
0, 0, 0, 0, // fix fees
|
247
|
-
0, 0, 0, 0, // variable fees
|
248
|
-
0, 0, 0, 0); // distribution owner fee/commission/discount
|
249
|
-
|
250
|
-
{
|
251
|
-
{
|
252
|
-
ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(product.getProductNftId());
|
253
|
-
uint256 t = productSetupInfo.productFee.fixedFee;
|
254
|
-
premium.productFeeFixAmount = t;
|
255
|
-
premium.fullPremiumAmount += t;
|
256
|
-
}
|
257
|
-
{
|
258
|
-
bytes memory componentData = instanceReader.getComponentInfo(poolNftId).data;
|
259
|
-
uint256 t = abi.decode(componentData, (IComponents.PoolInfo)).poolFee.fixedFee;
|
260
|
-
premium.poolFeeFixAmount = t;
|
261
|
-
premium.fullPremiumAmount += t;
|
262
|
-
}
|
263
|
-
{
|
264
|
-
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
265
|
-
if(bundleInfo.poolNftId != poolNftId) {
|
266
|
-
revert IApplicationServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
|
267
|
-
}
|
268
|
-
uint256 t = bundleInfo.fee.fixedFee;
|
269
|
-
premium.bundleFeeFixAmount = t;
|
270
|
-
premium.fullPremiumAmount += t;
|
271
|
-
}
|
272
|
-
{
|
273
|
-
ISetup.DistributionSetupInfo memory distInto = instanceReader.getDistributionSetupInfo(product.getDistributionNftId());
|
274
|
-
uint256 t = distInto.distributionFee.fixedFee;
|
275
|
-
premium.distributionFeeFixAmount = t;
|
276
|
-
premium.fullPremiumAmount += t;
|
277
|
-
}
|
278
|
-
}
|
279
|
-
|
280
|
-
}
|
281
|
-
|
282
|
-
function _calculateVariableFeeAmounts(
|
283
|
-
IPolicy.Premium memory premium,
|
284
|
-
Product product,
|
285
|
-
NftId bundleNftId,
|
286
|
-
ReferralId referralId
|
287
|
-
)
|
288
|
-
internal
|
289
|
-
view
|
290
|
-
returns (
|
291
|
-
IPolicy.Premium memory finalPremium
|
292
|
-
)
|
293
|
-
{
|
294
|
-
InstanceReader instanceReader;
|
295
|
-
{
|
296
|
-
IInstance instance = product.getInstance();
|
297
|
-
instanceReader = instance.getInstanceReader();
|
298
|
-
}
|
299
|
-
|
300
|
-
NftId poolNftId = product.getPoolNftId();
|
301
|
-
uint256 netPremiumAmount = premium.netPremiumAmount;
|
302
|
-
|
303
|
-
{
|
304
|
-
{
|
305
|
-
ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(product.getProductNftId());
|
306
|
-
uint256 t = (UFixedLib.toUFixed(netPremiumAmount) * productSetupInfo.productFee.fractionalFee).toInt();
|
307
|
-
premium.productFeeVarAmount = t;
|
308
|
-
premium.fullPremiumAmount += t;
|
309
|
-
}
|
310
|
-
{
|
311
|
-
bytes memory componentData = instanceReader.getComponentInfo(poolNftId).data;
|
312
|
-
UFixed poolFractionalFee = abi.decode(componentData, (IComponents.PoolInfo)).poolFee.fractionalFee;
|
313
|
-
uint256 t = (UFixedLib.toUFixed(netPremiumAmount) * poolFractionalFee).toInt();
|
314
|
-
premium.poolFeeVarAmount = t;
|
315
|
-
premium.fullPremiumAmount += t;
|
316
|
-
}
|
317
|
-
{
|
318
|
-
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
319
|
-
if(bundleInfo.poolNftId != poolNftId) {
|
320
|
-
revert IApplicationServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
|
321
|
-
}
|
322
|
-
uint256 t = (UFixedLib.toUFixed(netPremiumAmount) * bundleInfo.fee.fractionalFee).toInt();
|
323
|
-
premium.bundleFeeVarAmount = t;
|
324
|
-
premium.fullPremiumAmount += t;
|
325
|
-
}
|
326
|
-
{
|
327
|
-
premium = _distributionService.calculateFeeAmount(
|
328
|
-
product.getDistributionNftId(),
|
329
|
-
referralId,
|
330
|
-
premium
|
331
|
-
);
|
332
|
-
}
|
333
|
-
}
|
334
|
-
|
335
|
-
return premium;
|
336
|
-
}
|
337
|
-
|
338
|
-
|
339
|
-
function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
|
340
|
-
IRegistry.ObjectInfo memory productInfo;
|
341
|
-
(, productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
342
|
-
product = Product(productInfo.objectAddress);
|
343
|
-
}
|
344
|
-
|
345
|
-
function _getAndVerifyProduct(NftId productNftId) internal view returns (Product product) {
|
346
|
-
IRegistry registry = getRegistry();
|
347
|
-
IRegistry.ObjectInfo memory productInfo = registry.getObjectInfo(productNftId);
|
348
|
-
require(productInfo.objectType == PRODUCT(), "OBJECT_TYPE_INVALID");
|
349
|
-
product = Product(productInfo.objectAddress);
|
350
|
-
}
|
351
|
-
}
|
@@ -1,151 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRisk} from "../module/IRisk.sol";
|
5
|
-
import {IService} from "./IApplicationService.sol";
|
6
|
-
|
7
|
-
import {IRegistry} from "../../registry/IRegistry.sol";
|
8
|
-
import {IProductComponent} from "../../components/IProductComponent.sol";
|
9
|
-
import {Product} from "../../components/Product.sol";
|
10
|
-
import {IPoolComponent} from "../../components/IPoolComponent.sol";
|
11
|
-
import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
|
12
|
-
import {IInstance} from "../IInstance.sol";
|
13
|
-
import {IPolicy} from "../module/IPolicy.sol";
|
14
|
-
import {IRisk} from "../module/IRisk.sol";
|
15
|
-
import {IBundle} from "../module/IBundle.sol";
|
16
|
-
import {IProductService} from "./IProductService.sol";
|
17
|
-
import {ITreasury} from "../module/ITreasury.sol";
|
18
|
-
import {ISetup} from "../module/ISetup.sol";
|
19
|
-
|
20
|
-
import {TokenHandler} from "../../shared/TokenHandler.sol";
|
21
|
-
|
22
|
-
import {IVersionable} from "../../shared/IVersionable.sol";
|
23
|
-
import {Versionable} from "../../shared/Versionable.sol";
|
24
|
-
|
25
|
-
import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
|
26
|
-
import {UFixed, UFixedLib} from "../../types/UFixed.sol";
|
27
|
-
import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
|
28
|
-
import {ObjectType, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, CLAIM, BUNDLE} from "../../types/ObjectType.sol";
|
29
|
-
import {APPLIED, UNDERWRITTEN, ACTIVE, KEEP_STATE, CLOSED} from "../../types/StateId.sol";
|
30
|
-
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
31
|
-
import {Fee, FeeLib} from "../../types/Fee.sol";
|
32
|
-
import {ReferralId} from "../../types/Referral.sol";
|
33
|
-
import {RiskId} from "../../types/RiskId.sol";
|
34
|
-
import {StateId} from "../../types/StateId.sol";
|
35
|
-
import {ClaimId} from "../../types/ClaimId.sol";
|
36
|
-
import {PayoutId} from "../../types/PayoutId.sol";
|
37
|
-
import {Version, VersionLib} from "../../types/Version.sol";
|
38
|
-
|
39
|
-
import {ComponentService} from "../base/ComponentService.sol";
|
40
|
-
import {InstanceReader} from "../InstanceReader.sol";
|
41
|
-
import {IBundleService} from "./IBundleService.sol";
|
42
|
-
import {IClaimService} from "./IClaimService.sol";
|
43
|
-
import {IPoolService} from "./IPoolService.sol";
|
44
|
-
import {IService} from "../../shared/IService.sol";
|
45
|
-
import {Service} from "../../shared/Service.sol";
|
46
|
-
|
47
|
-
|
48
|
-
contract ClaimService is
|
49
|
-
ComponentService,
|
50
|
-
IClaimService
|
51
|
-
{
|
52
|
-
|
53
|
-
|
54
|
-
function _initialize(
|
55
|
-
address owner,
|
56
|
-
bytes memory data
|
57
|
-
)
|
58
|
-
internal
|
59
|
-
virtual override
|
60
|
-
initializer()
|
61
|
-
{
|
62
|
-
// TODO check this, might no longer be the way, refactor if necessary
|
63
|
-
address registryAddress;
|
64
|
-
address initialOwner;
|
65
|
-
(registryAddress, initialOwner) = abi.decode(data, (address, address));
|
66
|
-
|
67
|
-
initializeService(registryAddress, address(0), owner);
|
68
|
-
registerInterface(type(IClaimService).interfaceId);
|
69
|
-
}
|
70
|
-
|
71
|
-
|
72
|
-
function getDomain() public pure override returns(ObjectType) {
|
73
|
-
return CLAIM();
|
74
|
-
}
|
75
|
-
|
76
|
-
|
77
|
-
function createClaim(
|
78
|
-
NftId policyNftId,
|
79
|
-
uint256 claimAmount,
|
80
|
-
bytes memory claimData
|
81
|
-
)
|
82
|
-
external
|
83
|
-
virtual
|
84
|
-
returns (ClaimId)
|
85
|
-
{
|
86
|
-
|
87
|
-
}
|
88
|
-
|
89
|
-
|
90
|
-
function confirmClaim(NftId policyNftId, ClaimId claimId, uint256 claimAmount)
|
91
|
-
external
|
92
|
-
virtual
|
93
|
-
// solhint-disable-next-line no-empty-blocks
|
94
|
-
{
|
95
|
-
|
96
|
-
}
|
97
|
-
|
98
|
-
|
99
|
-
function declineClaim(NftId policyNftId, ClaimId claimId)
|
100
|
-
external
|
101
|
-
virtual
|
102
|
-
// solhint-disable-next-line no-empty-blocks
|
103
|
-
{
|
104
|
-
|
105
|
-
}
|
106
|
-
|
107
|
-
|
108
|
-
function closeClaim(NftId policyNftId, ClaimId claimId)
|
109
|
-
external
|
110
|
-
virtual
|
111
|
-
// solhint-disable-next-line no-empty-blocks
|
112
|
-
{
|
113
|
-
|
114
|
-
}
|
115
|
-
|
116
|
-
|
117
|
-
function createPayout(
|
118
|
-
NftId policyNftId,
|
119
|
-
ClaimId claimId,
|
120
|
-
uint256 payoutAmount,
|
121
|
-
bytes calldata payoutData
|
122
|
-
)
|
123
|
-
external
|
124
|
-
virtual
|
125
|
-
returns(PayoutId payoutId)
|
126
|
-
// solhint-disable-next-line no-empty-blocks
|
127
|
-
{
|
128
|
-
|
129
|
-
}
|
130
|
-
|
131
|
-
|
132
|
-
function payoutExecuted(
|
133
|
-
NftId policyNftId,
|
134
|
-
PayoutId payoutId
|
135
|
-
)
|
136
|
-
external
|
137
|
-
virtual
|
138
|
-
// solhint-disable-next-line no-empty-blocks
|
139
|
-
{
|
140
|
-
|
141
|
-
}
|
142
|
-
|
143
|
-
|
144
|
-
// internal functions
|
145
|
-
|
146
|
-
function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
|
147
|
-
IRegistry.ObjectInfo memory productInfo;
|
148
|
-
(, productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
149
|
-
product = Product(productInfo.objectAddress);
|
150
|
-
}
|
151
|
-
}
|
@@ -1,61 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRisk} from "../module/IRisk.sol";
|
5
|
-
import {IService} from "../../shared/IService.sol";
|
6
|
-
|
7
|
-
import {ClaimId} from "../../types/ClaimId.sol";
|
8
|
-
import {PayoutId} from "../../types/PayoutId.sol";
|
9
|
-
import {NftId} from "../../types/NftId.sol";
|
10
|
-
import {ReferralId} from "../../types/Referral.sol";
|
11
|
-
import {RiskId} from "../../types/RiskId.sol";
|
12
|
-
import {StateId} from "../../types/StateId.sol";
|
13
|
-
import {Timestamp} from "../../types/Timestamp.sol";
|
14
|
-
import {UFixed} from "../../types/UFixed.sol";
|
15
|
-
import {Fee} from "../../types/Fee.sol";
|
16
|
-
|
17
|
-
/// @dev gif service responsible for creating claims and payouts
|
18
|
-
/// only product components may call transaction functions
|
19
|
-
interface IClaimService is
|
20
|
-
IService
|
21
|
-
{
|
22
|
-
|
23
|
-
/// @dev create a new claim for the specified policy
|
24
|
-
/// function can only be called by product, policy needs to match with calling product
|
25
|
-
function createClaim(
|
26
|
-
NftId policyNftId,
|
27
|
-
uint256 claimAmount,
|
28
|
-
bytes memory claimData
|
29
|
-
) external returns (ClaimId);
|
30
|
-
|
31
|
-
/// @dev confirms the specified claim and fixes the final claim amount
|
32
|
-
/// function can only be called by product, policy needs to match with calling product
|
33
|
-
function confirmClaim(NftId policyNftId, ClaimId claimId, uint256 claimAmount) external;
|
34
|
-
|
35
|
-
/// @dev declares the claim as invalid, no payout(s) will be made
|
36
|
-
/// function can only be called by product, policy needs to match with calling product
|
37
|
-
function declineClaim(NftId policyNftId, ClaimId claimId) external;
|
38
|
-
|
39
|
-
/// @dev closes the claim
|
40
|
-
/// a claim may only be closed once all existing payouts have been executed and the sum of the paid out amounts has reached the claim amount
|
41
|
-
/// function can only be called by product, policy needs to match with calling product
|
42
|
-
function closeClaim(NftId policyNftId, ClaimId claimId) external;
|
43
|
-
|
44
|
-
/// @dev create a new payout for the specified policy and claim
|
45
|
-
/// function can only be called by product, policy needs to match with calling product
|
46
|
-
function createPayout(
|
47
|
-
NftId policyNftId,
|
48
|
-
ClaimId claimId,
|
49
|
-
uint256 payoutAmount,
|
50
|
-
bytes calldata payoutData
|
51
|
-
) external returns (PayoutId payoutId);
|
52
|
-
|
53
|
-
/// @dev callback function to confirm transfer of payout token to beneficiary
|
54
|
-
/// allows claim service to update claims/payout book keeping
|
55
|
-
/// only pool service can confirm executed payout
|
56
|
-
function payoutExecuted(
|
57
|
-
NftId policyNftId,
|
58
|
-
PayoutId payoutId
|
59
|
-
) external;
|
60
|
-
|
61
|
-
}
|