@etherisc/gif-next 0.0.2-7bdebe2-893 → 0.0.2-7bf391b-976
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 +48 -5
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1518 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +181 -361
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1557 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +854 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +181 -238
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +160 -297
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +247 -2323
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +203 -46
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +427 -2916
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +499 -375
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +268 -207
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -102
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3469 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +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/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +160 -219
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1055 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +265 -240
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1521 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +830 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +253 -45
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +190 -339
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +332 -196
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1218 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1700 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +798 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1280 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1339 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +47 -2
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +255 -90
- 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} +66 -136
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +14 -56
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1335 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +794 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/Product.sol/Product.json +354 -314
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +182 -28
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +206 -124
- 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 +443 -43
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +374 -72
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -41
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +105 -120
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1712 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -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} +22 -114
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +77 -82
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +737 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- 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 +21 -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 +20 -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/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +977 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
- 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 +20 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +107 -6
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +470 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1991 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +773 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/{components → distribution}/Distribution.sol +172 -161
- package/contracts/distribution/DistributionService.sol +336 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/{instance/service → distribution}/IDistributionService.sol +36 -38
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +27 -27
- package/contracts/instance/IInstance.sol +54 -72
- package/contracts/instance/IInstanceService.sol +50 -21
- package/contracts/instance/Instance.sol +150 -214
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +109 -67
- package/contracts/instance/InstanceService.sol +267 -308
- package/contracts/instance/InstanceServiceManager.sol +12 -26
- package/contracts/instance/InstanceStore.sol +277 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +104 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
- package/contracts/instance/module/IAccess.sol +4 -12
- package/contracts/instance/module/IBundle.sol +6 -9
- package/contracts/instance/module/IComponents.sol +20 -15
- package/contracts/instance/module/IDistribution.sol +6 -6
- package/contracts/instance/module/IPolicy.sol +21 -14
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +166 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +450 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +50 -30
- package/contracts/pool/IPoolComponent.sol +58 -0
- package/contracts/{instance/service → pool}/IPoolService.sol +70 -44
- package/contracts/pool/Pool.sol +328 -0
- package/contracts/pool/PoolService.sol +559 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +230 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/product/BasicProduct.sol +52 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/{instance/service → product}/ClaimService.sol +81 -101
- 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 +24 -14
- package/contracts/product/IPolicyService.sol +85 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +40 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +556 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +300 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/{components → product}/Product.sol +165 -125
- package/contracts/product/ProductService.sol +99 -0
- package/contracts/product/ProductServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +59 -26
- package/contracts/registry/IRegistryService.sol +42 -39
- package/contracts/registry/Registry.sol +234 -125
- package/contracts/registry/RegistryAdmin.sol +365 -0
- package/contracts/registry/RegistryService.sol +69 -99
- package/contracts/registry/RegistryServiceManager.sol +23 -32
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +281 -0
- package/contracts/shared/ComponentService.sol +650 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/{components → shared}/IComponent.sol +21 -40
- package/contracts/shared/IComponentService.sol +108 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +2 -2
- package/contracts/shared/IPolicyHolder.sol +10 -5
- package/contracts/shared/IService.sol +10 -3
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +172 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +5 -16
- package/contracts/shared/PolicyHolder.sol +24 -19
- package/contracts/shared/Registerable.sol +3 -3
- package/contracts/shared/Service.sol +32 -22
- package/contracts/shared/TokenHandler.sol +31 -2
- package/contracts/staking/IStaking.sol +167 -0
- package/contracts/staking/IStakingService.sol +160 -0
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +516 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +50 -0
- package/contracts/staking/StakingReader.sol +183 -0
- package/contracts/staking/StakingService.sol +407 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/{types → type}/Amount.sol +56 -1
- package/contracts/{types → type}/Blocknumber.sol +26 -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/type/ObjectType.sol +271 -0
- package/contracts/{types → type}/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +174 -0
- package/contracts/{types → type}/Seconds.sol +40 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +27 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +17 -3
- package/contracts/{types → type}/UFixed.sol +34 -9
- package/contracts/{types → type}/Version.sol +4 -2
- package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
- package/package.json +8 -5
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -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 -1291
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -700
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1400
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -760
- 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 -1670
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -732
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
- package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -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/ClaimId.sol/ClaimIdLib.json +0 -179
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
- package/contracts/components/Component.sol +0 -272
- package/contracts/components/IDistributionComponent.sol +0 -71
- package/contracts/components/IPoolComponent.sol +0 -113
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/components/Pool.sol +0 -302
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/Cloneable.sol +0 -51
- 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/base/Lifecycle.sol +0 -120
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -356
- package/contracts/instance/service/BundleService.sol +0 -385
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/DistributionService.sol +0 -431
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IPolicyService.sol +0 -80
- 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 -403
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -210
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/registry/ReleaseManager.sol +0 -324
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -157
- package/contracts/types/RoleId.sol +0 -97
- /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
@@ -1,54 +1,26 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
3
|
-
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import {
|
10
|
-
import {
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
import {
|
17
|
-
import {
|
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 {Amount, AmountLib} from "../../types/Amount.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, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, CLAIM, BUNDLE} from "../../types/ObjectType.sol";
|
31
|
-
import {SUBMITTED, ACTIVE, KEEP_STATE, DECLINED, CONFIRMED, CLOSED, PAID} 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 {ClaimId, ClaimIdLib} from "../../types/ClaimId.sol";
|
38
|
-
import {PayoutId, PayoutIdLib} from "../../types/PayoutId.sol";
|
39
|
-
import {Version, VersionLib} from "../../types/Version.sol";
|
40
|
-
|
41
|
-
import {ComponentService} from "../base/ComponentService.sol";
|
42
|
-
import {InstanceReader} from "../InstanceReader.sol";
|
43
|
-
import {IBundleService} from "./IBundleService.sol";
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
5
|
+
import {IInstance} from "../instance/IInstance.sol";
|
6
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
7
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
8
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
9
|
+
import {ObjectType, CLAIM, PRODUCT, POOL} from "../type/ObjectType.sol";
|
10
|
+
import {SUBMITTED, KEEP_STATE, DECLINED, CONFIRMED, CLOSED, PAID} from "../type/StateId.sol";
|
11
|
+
import {NftId} from "../type/NftId.sol";
|
12
|
+
import {FeeLib} from "../type/Fee.sol";
|
13
|
+
import {StateId} from "../type/StateId.sol";
|
14
|
+
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
15
|
+
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
16
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
17
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
44
18
|
import {IClaimService} from "./IClaimService.sol";
|
45
|
-
import {IPoolService} from "
|
46
|
-
import {IService} from "../../shared/IService.sol";
|
47
|
-
import {Service} from "../../shared/Service.sol";
|
19
|
+
import {IPoolService} from "../pool/IPoolService.sol";
|
48
20
|
|
49
21
|
|
50
22
|
contract ClaimService is
|
51
|
-
|
23
|
+
ComponentVerifyingService,
|
52
24
|
IClaimService
|
53
25
|
{
|
54
26
|
|
@@ -62,27 +34,23 @@ contract ClaimService is
|
|
62
34
|
virtual override
|
63
35
|
initializer()
|
64
36
|
{
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
37
|
+
(
|
38
|
+
address registryAddress,,
|
39
|
+
//address managerAddress
|
40
|
+
address authority
|
41
|
+
) = abi.decode(data, (address, address, address));
|
69
42
|
|
70
|
-
initializeService(registryAddress,
|
43
|
+
initializeService(registryAddress, authority, owner);
|
71
44
|
|
72
45
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
73
46
|
|
74
47
|
registerInterface(type(IClaimService).interfaceId);
|
75
48
|
}
|
76
49
|
|
77
|
-
|
78
|
-
function getDomain() public pure override returns(ObjectType) {
|
79
|
-
return CLAIM();
|
80
|
-
}
|
81
|
-
|
82
50
|
function submit(
|
83
51
|
NftId policyNftId,
|
84
52
|
Amount claimAmount,
|
85
|
-
bytes memory claimData
|
53
|
+
bytes memory claimData // claim submission data
|
86
54
|
)
|
87
55
|
external
|
88
56
|
virtual
|
@@ -100,16 +68,16 @@ contract ClaimService is
|
|
100
68
|
}
|
101
69
|
|
102
70
|
// check policy including this claim is still within sum insured
|
103
|
-
if(policyInfo.payoutAmount
|
71
|
+
if(policyInfo.payoutAmount + claimAmount > policyInfo.sumInsuredAmount) {
|
104
72
|
revert ErrorClaimServiceClaimExceedsSumInsured(
|
105
73
|
policyNftId,
|
106
|
-
|
74
|
+
policyInfo.sumInsuredAmount,
|
107
75
|
AmountLib.toAmount(policyInfo.payoutAmount.toInt() + claimAmount.toInt()));
|
108
76
|
}
|
109
77
|
|
110
78
|
// create new claim
|
111
79
|
claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
|
112
|
-
instance.createClaim(
|
80
|
+
instance.getInstanceStore().createClaim(
|
113
81
|
policyNftId,
|
114
82
|
claimId,
|
115
83
|
IPolicy.ClaimInfo(
|
@@ -117,14 +85,15 @@ contract ClaimService is
|
|
117
85
|
AmountLib.zero(), // paidAmount
|
118
86
|
0, // payoutsCount
|
119
87
|
0, // openPayoutsCount
|
120
|
-
claimData,
|
88
|
+
claimData, // claim submission data
|
89
|
+
"", // claim processing data
|
121
90
|
TimestampLib.zero())); // closedAt
|
122
91
|
|
123
92
|
// update and save policy info with instance
|
124
93
|
policyInfo.claimsCount += 1;
|
125
94
|
policyInfo.openClaimsCount += 1;
|
126
95
|
// policy claim amount is only updated when claim is confirmed
|
127
|
-
instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
96
|
+
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
128
97
|
|
129
98
|
emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
|
130
99
|
}
|
@@ -133,7 +102,8 @@ contract ClaimService is
|
|
133
102
|
function confirm(
|
134
103
|
NftId policyNftId,
|
135
104
|
ClaimId claimId,
|
136
|
-
Amount confirmedAmount
|
105
|
+
Amount confirmedAmount,
|
106
|
+
bytes memory data // claim processing data
|
137
107
|
)
|
138
108
|
external
|
139
109
|
virtual
|
@@ -147,18 +117,20 @@ contract ClaimService is
|
|
147
117
|
// check/update claim info
|
148
118
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
149
119
|
claimInfo.claimAmount = confirmedAmount;
|
150
|
-
|
120
|
+
claimInfo.processData = data;
|
121
|
+
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
|
151
122
|
|
152
123
|
// update and save policy info with instance
|
153
|
-
policyInfo.claimAmount = policyInfo.claimAmount
|
154
|
-
instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
124
|
+
policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
|
125
|
+
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
155
126
|
|
156
127
|
emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
|
157
128
|
}
|
158
129
|
|
159
130
|
function decline(
|
160
131
|
NftId policyNftId,
|
161
|
-
ClaimId claimId
|
132
|
+
ClaimId claimId,
|
133
|
+
bytes memory data // claim processing data
|
162
134
|
)
|
163
135
|
external
|
164
136
|
virtual
|
@@ -171,12 +143,13 @@ contract ClaimService is
|
|
171
143
|
|
172
144
|
// check/update claim info
|
173
145
|
IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
|
146
|
+
claimInfo.processData = data;
|
174
147
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
175
|
-
instance.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
148
|
+
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, DECLINED());
|
176
149
|
|
177
150
|
// update and save policy info with instance
|
178
151
|
policyInfo.openClaimsCount -= 1;
|
179
|
-
instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
152
|
+
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
180
153
|
|
181
154
|
emit LogClaimServiceClaimDeclined(policyNftId, claimId);
|
182
155
|
}
|
@@ -215,13 +188,7 @@ contract ClaimService is
|
|
215
188
|
}
|
216
189
|
|
217
190
|
claimInfo.closedAt = TimestampLib.blockTimestamp();
|
218
|
-
instance.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
219
|
-
|
220
|
-
// update and save policy info with instance
|
221
|
-
policyInfo.openClaimsCount -= 1;
|
222
|
-
instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
223
|
-
|
224
|
-
emit LogClaimServiceClaimClosed(policyNftId, claimId);
|
191
|
+
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
225
192
|
}
|
226
193
|
|
227
194
|
|
@@ -251,7 +218,7 @@ contract ClaimService is
|
|
251
218
|
// create payout info with instance
|
252
219
|
uint8 claimNo = claimInfo.payoutsCount + 1;
|
253
220
|
payoutId = PayoutIdLib.toPayoutId(claimId, claimNo);
|
254
|
-
instance.createPayout(
|
221
|
+
instance.getInstanceStore().createPayout(
|
255
222
|
policyNftId,
|
256
223
|
payoutId,
|
257
224
|
IPolicy.PayoutInfo(
|
@@ -263,11 +230,11 @@ contract ClaimService is
|
|
263
230
|
// update and save claim info with instance
|
264
231
|
claimInfo.payoutsCount += 1;
|
265
232
|
claimInfo.openPayoutsCount += 1;
|
266
|
-
instance.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
233
|
+
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
267
234
|
|
268
235
|
// update and save policy info with instance
|
269
236
|
policyInfo.payoutAmount.add(amount);
|
270
|
-
instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
237
|
+
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
271
238
|
|
272
239
|
emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount);
|
273
240
|
}
|
@@ -291,7 +258,7 @@ contract ClaimService is
|
|
291
258
|
|
292
259
|
// update and save payout info with instance
|
293
260
|
payoutInfo.paidAt = TimestampLib.blockTimestamp();
|
294
|
-
instance.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
261
|
+
instance.getInstanceStore().updatePayout(policyNftId, payoutId, payoutInfo, PAID());
|
295
262
|
|
296
263
|
// TODO update and save claim info with instance
|
297
264
|
ClaimId claimId = payoutId.toClaimId();
|
@@ -304,25 +271,30 @@ contract ClaimService is
|
|
304
271
|
// update claim and policy info accordingly
|
305
272
|
if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
|
306
273
|
claimInfo.closedAt == TimestampLib.blockTimestamp();
|
307
|
-
instance.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
274
|
+
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CLOSED());
|
308
275
|
|
309
276
|
policyInfo.openClaimsCount -= 1;
|
310
277
|
} else {
|
311
|
-
instance.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
278
|
+
instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
|
312
279
|
}
|
313
280
|
|
314
281
|
// update and save policy info with instance
|
315
282
|
policyInfo.payoutAmount = policyInfo.payoutAmount.add(payoutAmount);
|
316
|
-
instance.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
283
|
+
instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
|
317
284
|
|
318
285
|
// inform pool about payout
|
319
|
-
_poolService.reduceCollateral(
|
286
|
+
_poolService.reduceCollateral(
|
287
|
+
instance,
|
288
|
+
address(instanceReader.getComponentInfo(policyInfo.productNftId).token),
|
289
|
+
policyNftId,
|
290
|
+
policyInfo,
|
291
|
+
payoutAmount);
|
320
292
|
|
321
293
|
// transfer payout token and fee
|
322
294
|
(
|
323
295
|
Amount netPayoutAmount,
|
324
296
|
address beneficiary
|
325
|
-
) =
|
297
|
+
) = _calculatePayoutAmount(
|
326
298
|
instanceReader,
|
327
299
|
policyNftId,
|
328
300
|
policyInfo,
|
@@ -330,11 +302,24 @@ contract ClaimService is
|
|
330
302
|
|
331
303
|
// TODO callback IPolicyHolder
|
332
304
|
|
305
|
+
if (netPayoutAmount.eqz()) {
|
306
|
+
revert ErrorClaimsServicePayoutAmountIsZero(policyNftId, payoutId);
|
307
|
+
}
|
308
|
+
|
333
309
|
emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount, beneficiary, netPayoutAmount);
|
310
|
+
|
311
|
+
{
|
312
|
+
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
313
|
+
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
314
|
+
// TODO: centralize token handling (issue #471)
|
315
|
+
poolInfo.tokenHandler.transfer(
|
316
|
+
poolInfo.wallet,
|
317
|
+
beneficiary,
|
318
|
+
netPayoutAmount);
|
319
|
+
}
|
334
320
|
}
|
335
321
|
|
336
|
-
|
337
|
-
function _transferPayoutAmount(
|
322
|
+
function _calculatePayoutAmount(
|
338
323
|
InstanceReader instanceReader,
|
339
324
|
NftId policyNftId,
|
340
325
|
IPolicy.PolicyInfo memory policyInfo,
|
@@ -350,7 +335,6 @@ contract ClaimService is
|
|
350
335
|
|
351
336
|
if(payoutAmount.gtz()) {
|
352
337
|
NftId productNftId = policyInfo.productNftId;
|
353
|
-
ISetup.ProductSetupInfo memory setupInfo = instanceReader.getProductSetupInfo(productNftId);
|
354
338
|
|
355
339
|
// get pool component info from policy or product
|
356
340
|
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
@@ -359,17 +343,12 @@ contract ClaimService is
|
|
359
343
|
netPayoutAmount = payoutAmount;
|
360
344
|
beneficiary = _getBeneficiary(policyNftId, payoutInfo.claimId);
|
361
345
|
|
362
|
-
|
346
|
+
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
347
|
+
if(FeeLib.gtz(productInfo.processingFee)) {
|
363
348
|
// TODO calculate net payout and processing fees
|
364
349
|
// TODO transfer processing fees to product wallet
|
365
350
|
// TODO inform product to update fee book keeping
|
366
351
|
}
|
367
|
-
|
368
|
-
poolInfo.tokenHandler.transfer(
|
369
|
-
poolInfo.wallet,
|
370
|
-
beneficiary,
|
371
|
-
netPayoutAmount.toInt()
|
372
|
-
);
|
373
352
|
}
|
374
353
|
}
|
375
354
|
|
@@ -394,6 +373,8 @@ contract ClaimService is
|
|
394
373
|
NftId policyNftId
|
395
374
|
)
|
396
375
|
internal
|
376
|
+
view
|
377
|
+
virtual
|
397
378
|
returns (
|
398
379
|
IInstance instance,
|
399
380
|
InstanceReader instanceReader,
|
@@ -401,7 +382,7 @@ contract ClaimService is
|
|
401
382
|
)
|
402
383
|
{
|
403
384
|
NftId productNftId;
|
404
|
-
(productNftId,, instance) =
|
385
|
+
(productNftId,, instance) = _getAndVerifyActiveComponent(PRODUCT());
|
405
386
|
instanceReader = instance.getInstanceReader();
|
406
387
|
|
407
388
|
// check caller(product) policy match
|
@@ -436,9 +417,8 @@ contract ClaimService is
|
|
436
417
|
claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
|
437
418
|
}
|
438
419
|
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
product = Product(productInfo.objectAddress);
|
420
|
+
|
421
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
422
|
+
return CLAIM();
|
443
423
|
}
|
444
|
-
}
|
424
|
+
}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IVersionable} from "
|
5
|
-
import {ProxyManager} from "
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {ClaimService} from "./ClaimService.sol";
|
7
7
|
|
8
8
|
contract ClaimServiceManager is ProxyManager {
|
@@ -11,15 +11,18 @@ contract ClaimServiceManager is ProxyManager {
|
|
11
11
|
|
12
12
|
/// @dev initializes proxy manager with service implementation
|
13
13
|
constructor(
|
14
|
-
address
|
15
|
-
|
14
|
+
address authority,
|
15
|
+
address registryAddress,
|
16
|
+
bytes32 salt
|
17
|
+
)
|
16
18
|
ProxyManager(registryAddress)
|
17
19
|
{
|
18
|
-
ClaimService svc = new ClaimService();
|
19
|
-
bytes memory data = abi.encode(registryAddress, address(this));
|
20
|
-
IVersionable versionable =
|
20
|
+
ClaimService svc = new ClaimService{salt: salt}();
|
21
|
+
bytes memory data = abi.encode(registryAddress, address(this), authority);
|
22
|
+
IVersionable versionable = deployDetermenistic(
|
21
23
|
address(svc),
|
22
|
-
data
|
24
|
+
data,
|
25
|
+
salt);
|
23
26
|
|
24
27
|
_claimService = ClaimService(address(versionable));
|
25
28
|
}
|
@@ -1,14 +1,15 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IPolicy} from "../module/IPolicy.sol";
|
5
|
-
import {IService} from "
|
4
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
5
|
+
import {IService} from "../shared/IService.sol";
|
6
6
|
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import {
|
10
|
-
import {
|
11
|
-
import {
|
7
|
+
import {Amount} from "../type/Amount.sol";
|
8
|
+
import {NftId} from "../type/NftId.sol";
|
9
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
10
|
+
import {ReferralId} from "../type/Referral.sol";
|
11
|
+
import {RiskId} from "../type/RiskId.sol";
|
12
|
+
import {Seconds} from "../type/Seconds.sol";
|
12
13
|
|
13
14
|
/// @dev gif service responsible for creating applications
|
14
15
|
/// only product components may call transaction functions
|
@@ -22,7 +23,7 @@ interface IApplicationService is IService {
|
|
22
23
|
function create(
|
23
24
|
address applicationOwner,
|
24
25
|
RiskId riskId,
|
25
|
-
|
26
|
+
Amount sumInsuredAmount,
|
26
27
|
Seconds lifetime,
|
27
28
|
NftId bundleNftId,
|
28
29
|
ReferralId referralId,
|
@@ -37,8 +38,8 @@ interface IApplicationService is IService {
|
|
37
38
|
RiskId riskId,
|
38
39
|
NftId bundleNftId,
|
39
40
|
ReferralId referralId,
|
40
|
-
|
41
|
-
|
41
|
+
Amount sumInsuredAmount,
|
42
|
+
Seconds lifetime,
|
42
43
|
bytes memory applicationData
|
43
44
|
) external;
|
44
45
|
|
@@ -58,21 +59,4 @@ interface IApplicationService is IService {
|
|
58
59
|
/// an application can only be revoked in applied state
|
59
60
|
/// only the application holder may revoke an application
|
60
61
|
function revoke(NftId policyNftId) external;
|
61
|
-
|
62
|
-
/// @dev calculates the premium amount for the specified attributes
|
63
|
-
/// also returns the various fee components involved with creating a policy
|
64
|
-
function calculatePremium(
|
65
|
-
NftId productNftId,
|
66
|
-
RiskId riskId,
|
67
|
-
uint256 sumInsuredAmount,
|
68
|
-
Seconds lifetime,
|
69
|
-
bytes memory applicationData,
|
70
|
-
NftId bundleNftId,
|
71
|
-
ReferralId referralId
|
72
|
-
)
|
73
|
-
external
|
74
|
-
view
|
75
|
-
returns (
|
76
|
-
IPolicy.Premium memory premium
|
77
|
-
);
|
78
|
-
}
|
62
|
+
}
|
@@ -1,18 +1,18 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IInstance} from "../IInstance.sol";
|
5
|
-
import {InstanceReader} from "../InstanceReader.sol";
|
6
|
-
import {IService} from "
|
4
|
+
import {IInstance} from "../instance/IInstance.sol";
|
5
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
6
|
+
import {IService} from "../shared/IService.sol";
|
7
7
|
|
8
|
-
import {Amount} from "
|
9
|
-
import {ClaimId} from "
|
10
|
-
import {PayoutId} from "
|
11
|
-
import {NftId} from "
|
12
|
-
import {StateId} from "
|
13
|
-
import {Timestamp} from "
|
14
|
-
import {UFixed} from "
|
15
|
-
import {Fee} from "
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
9
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
10
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
11
|
+
import {NftId} from "../type/NftId.sol";
|
12
|
+
import {StateId} from "../type/StateId.sol";
|
13
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
14
|
+
import {UFixed} from "../type/UFixed.sol";
|
15
|
+
import {Fee} from "../type/Fee.sol";
|
16
16
|
|
17
17
|
/// @dev gif service responsible for creating claims and payouts
|
18
18
|
/// only product components may call transaction functions
|
@@ -31,6 +31,7 @@ interface IClaimService is
|
|
31
31
|
error ErrorClaimServicePolicyProductMismatch(NftId policyNftId, NftId expectedProduct, NftId actualProduct);
|
32
32
|
error ErrorClaimServicePolicyNotOpen(NftId policyNftId);
|
33
33
|
error ErrorClaimServiceClaimExceedsSumInsured(NftId policyNftId, Amount sumInsured, Amount payoutsIncludingClaimAmount);
|
34
|
+
error ErrorClaimsServicePayoutAmountIsZero(NftId policyNftId, PayoutId payoutId);
|
34
35
|
|
35
36
|
error ErrorClaimServiceClaimWithOpenPayouts(NftId policyNftId, ClaimId claimId, uint8 openPayouts);
|
36
37
|
error ErrorClaimServiceClaimWithMissingPayouts(NftId policyNftId, ClaimId claimId, Amount claimAmount, Amount paidAmount);
|
@@ -45,20 +46,29 @@ interface IClaimService is
|
|
45
46
|
bytes memory claimData
|
46
47
|
) external returns (ClaimId claimId);
|
47
48
|
|
49
|
+
|
50
|
+
// TODO add claim revoke functionality
|
51
|
+
|
52
|
+
|
48
53
|
/// @dev declines the specified claim
|
49
54
|
/// function can only be called by product, policy needs to match with calling product
|
50
55
|
function decline(
|
51
56
|
NftId policyNftId,
|
52
|
-
ClaimId claimId
|
57
|
+
ClaimId claimId,
|
58
|
+
bytes memory data // claim processing data
|
59
|
+
) external;
|
60
|
+
|
53
61
|
|
54
62
|
/// @dev confirms the specified claim and specifies the payout amount
|
55
63
|
/// function can only be called by product, policy needs to match with calling product
|
56
64
|
function confirm(
|
57
65
|
NftId policyNftId,
|
58
66
|
ClaimId claimId,
|
59
|
-
Amount confirmedAmount
|
67
|
+
Amount confirmedAmount,
|
68
|
+
bytes memory data // claim processing data
|
60
69
|
) external;
|
61
70
|
|
71
|
+
|
62
72
|
/// @dev closes the specified claim
|
63
73
|
/// function can only be called by product, policy needs to match with calling product
|
64
74
|
function close(
|
@@ -0,0 +1,85 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IRisk} from "../instance/module/IRisk.sol";
|
5
|
+
import {IService} from "../shared/IService.sol";
|
6
|
+
|
7
|
+
import {Amount} from "../type/Amount.sol";
|
8
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
9
|
+
import {NftId} from "../type/NftId.sol";
|
10
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
11
|
+
import {ReferralId} from "../type/Referral.sol";
|
12
|
+
import {RiskId} from "../type/RiskId.sol";
|
13
|
+
import {Seconds} from "../type/Seconds.sol";
|
14
|
+
import {StateId} from "../type/StateId.sol";
|
15
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
16
|
+
import {UFixed} from "../type/UFixed.sol";
|
17
|
+
import {Fee} from "../type/Fee.sol";
|
18
|
+
|
19
|
+
interface IPolicyService is IService {
|
20
|
+
|
21
|
+
error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
|
22
|
+
error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
|
23
|
+
error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
|
24
|
+
error ErrorPolicyServicePolicyAlreadyActivated(NftId policyNftId);
|
25
|
+
|
26
|
+
error ErrorPolicyServicePremiumHigherThanExpected(uint256 premiumExpectedAmount, uint256 premiumToBePaidAmount);
|
27
|
+
error ErrorPolicyServiceBalanceInsufficient(address policyOwner, uint256 premiumAmount, uint256 balance);
|
28
|
+
error ErrorPolicyServiceAllowanceInsufficient(address policyOwner, address tokenHandler, uint256 premiumAmount, uint256 allowance);
|
29
|
+
|
30
|
+
error ErrorPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
|
31
|
+
error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId, Amount premiumPaidAmount);
|
32
|
+
error ErrorPolicyServicePolicyNotActivated(NftId policyNftId);
|
33
|
+
error ErrorPolicyServicePolicyAlreadyClosed(NftId policyNftId);
|
34
|
+
error ErrorPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
|
35
|
+
error ErrorPolicyServicePremiumNotFullyPaid(NftId policyNftId, Amount premiumAmount, Amount premiumPaidAmount);
|
36
|
+
error ErrorPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
|
37
|
+
error ErrorPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
|
38
|
+
error ErrorPolicyServicePolicyExpirationTooLate(NftId policyNftId, Timestamp upperLimit, Timestamp expiredAt);
|
39
|
+
error ErrorPolicyServicePolicyExpirationTooEarly(NftId policyNftId, Timestamp lowerLimit, Timestamp expiredAt);
|
40
|
+
|
41
|
+
error ErrorPolicyServicePremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount recalculatedPremiumAmount);
|
42
|
+
error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount transferredPremiumAmount);
|
43
|
+
|
44
|
+
event LogPolicyServicePolicyDeclined(NftId policyNftId);
|
45
|
+
event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
|
46
|
+
|
47
|
+
/// @dev collateralizes the policy represented by {policyNftId}. locks the sum insured amount in the pool.
|
48
|
+
/// sets the policy state to collateralized
|
49
|
+
/// may set the policy state to activated and set the activation date
|
50
|
+
/// optionally collects premiums and activates the policy.
|
51
|
+
/// - premium payment is only attempted if requirePremiumPayment is set to true
|
52
|
+
/// - activation is only done if activateAt is a non-zero timestamp
|
53
|
+
/// an application can only be collateralized in applied state
|
54
|
+
/// only the related product may collateralize an application
|
55
|
+
function collateralize(
|
56
|
+
NftId policyNftId,
|
57
|
+
bool requirePremiumPayment,
|
58
|
+
Timestamp activateAt
|
59
|
+
) external;
|
60
|
+
|
61
|
+
/// @dev declines an application represented by {policyNftId}
|
62
|
+
/// an application can only be declined in applied state
|
63
|
+
/// only the related product may decline an application
|
64
|
+
function decline(NftId policyNftId) external;
|
65
|
+
|
66
|
+
/// @dev collects the premium token for the specified policy (must be in COLLATERALIZED or ACTIVE state)
|
67
|
+
function collectPremium(NftId policyNftId, Timestamp activateAt) external;
|
68
|
+
|
69
|
+
/// @dev activates the specified policy and sets the activation date in the policy metadata
|
70
|
+
/// to activate a policy it needs to be in underwritten state
|
71
|
+
function activate(NftId policyNftId, Timestamp activateAt) external;
|
72
|
+
|
73
|
+
/// @dev expires the specified policy and sets the expiry date in the policy metadata. If expiry date is set to 0, then the earliest possible expiry date (current blocktime) is set
|
74
|
+
/// to expire a policy it must be in active state, policies may be expired even when the predefined expiry date is still in the future
|
75
|
+
/// a policy can only be closed when it has been expired. in addition, it must not have any open claims
|
76
|
+
/// this function can only be called by a product. the policy needs to match with the calling product
|
77
|
+
/// @return expiredAt the effective expiry date
|
78
|
+
function expire(NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
|
79
|
+
|
80
|
+
/// @dev closes the specified policy and sets the closed data in the policy metadata
|
81
|
+
/// a policy can only be closed when it has been expired. in addition, it must not have any open claims
|
82
|
+
/// this function can only be called by a product. the policy needs to match with the calling product
|
83
|
+
function close(NftId policyNftId) external;
|
84
|
+
|
85
|
+
}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Seconds} from "../type/Seconds.sol";
|
5
|
+
import {NftId} from "../type/NftId.sol";
|
6
|
+
import {ReferralId} from "../type/Referral.sol";
|
7
|
+
import {RiskId} from "../type/RiskId.sol";
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
9
|
+
|
10
|
+
import {IService} from "./IApplicationService.sol";
|
11
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
12
|
+
|
13
|
+
interface IPricingService is IService
|
14
|
+
{
|
15
|
+
|
16
|
+
error ErrorPricingServiceTargetWalletAmountsMismatch();
|
17
|
+
error ErrorIPricingServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
|
18
|
+
error ErrorIPricingServiceFeeCalculationMismatch(
|
19
|
+
uint256 distributionFeeFixAmount,
|
20
|
+
uint256 distributionFeeVarAmount,
|
21
|
+
uint256 distributionOwnerFeeFixAmount,
|
22
|
+
uint256 distributionOwnerFeeVarAmount,
|
23
|
+
uint256 commissionAmount,
|
24
|
+
uint256 discountAmount
|
25
|
+
);
|
26
|
+
|
27
|
+
function calculatePremium(
|
28
|
+
NftId productNftId,
|
29
|
+
RiskId riskId,
|
30
|
+
Amount sumInsuredAmount,
|
31
|
+
Seconds lifetime,
|
32
|
+
bytes memory applicationData,
|
33
|
+
NftId bundleNftId,
|
34
|
+
ReferralId referralId
|
35
|
+
)
|
36
|
+
external
|
37
|
+
view
|
38
|
+
returns (IPolicy.Premium memory premium);
|
39
|
+
}
|