@etherisc/gif-next 0.0.2-c8c9cfc-245 → 0.0.2-c9577b6-545
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 +5 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +105 -65
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +13 -8
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -32
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +5 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +5 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +13 -8
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +52 -212
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +28 -19
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +16 -184
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +150 -286
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +100 -120
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +16 -37
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +65 -62
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1507 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +419 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1978 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +423 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1427 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1187 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1561 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1996 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +16 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +16 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +26 -99
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +177 -113
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +38 -29
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +424 -74
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +55 -146
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +77 -81
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +291 -112
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- 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/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +42 -202
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +30 -21
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +16 -37
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +16 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +16 -184
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +53 -144
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +76 -80
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +45 -185
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +28 -19
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +148 -222
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +115 -107
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +40 -31
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +48 -41
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +208 -138
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +45 -185
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +283 -355
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +96 -120
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +52 -162
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +73 -89
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +44 -210
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +28 -19
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +258 -184
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +117 -101
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +21 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +148 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +241 -145
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +59 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +44 -63
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +18 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +317 -384
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +108 -124
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +133 -261
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +97 -117
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +44 -210
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +604 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +698 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +286 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +16 -0
- 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 +492 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +283 -143
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +39 -313
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +68 -72
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +129 -221
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +16 -173
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +105 -228
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +112 -122
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +21 -112
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +16 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +16 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +16 -37
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +16 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +16 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +16 -184
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +21 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +288 -16
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +43 -27
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +16 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +63 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +101 -248
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +93 -100
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +47 -159
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +72 -76
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +169 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +54 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +32 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +15 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +55 -70
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +63 -59
- package/contracts/authorization/Authorization.sol +7 -3
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -3
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +2 -0
- package/contracts/distribution/Distribution.sol +3 -2
- package/contracts/distribution/DistributionService.sol +72 -60
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionService.sol +9 -5
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +75 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +411 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/IInstance.sol +7 -30
- package/contracts/instance/Instance.sol +10 -35
- package/contracts/instance/InstanceAdmin.sol +29 -7
- package/contracts/instance/InstanceAuthorizationV3.sol +3 -3
- package/contracts/instance/InstanceReader.sol +107 -25
- package/contracts/instance/InstanceService.sol +63 -41
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/base/ObjectLifecycle.sol +8 -1
- package/contracts/instance/module/IComponents.sol +4 -2
- package/contracts/instance/module/IPolicy.sol +23 -23
- package/contracts/oracle/Oracle.sol +2 -1
- package/contracts/oracle/OracleService.sol +41 -33
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +12 -13
- package/contracts/pool/BundleService.sol +42 -31
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +11 -3
- package/contracts/pool/IPoolComponent.sol +18 -8
- package/contracts/pool/IPoolService.sol +50 -28
- package/contracts/pool/Pool.sol +61 -32
- package/contracts/pool/PoolService.sol +121 -117
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +50 -29
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +1 -0
- package/contracts/product/ClaimService.sol +245 -88
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +30 -7
- package/contracts/product/IPolicyService.sol +29 -34
- package/contracts/product/IPricingService.sol +7 -7
- package/contracts/product/IProductComponent.sol +17 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +313 -172
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +47 -50
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +76 -53
- package/contracts/product/{ProductService.sol → RiskService.sol} +7 -10
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +65 -32
- package/contracts/registry/IRegistry.sol +55 -18
- package/contracts/registry/IRegistryService.sol +0 -9
- package/contracts/registry/Registry.sol +336 -197
- package/contracts/registry/RegistryAdmin.sol +134 -51
- package/contracts/registry/RegistryService.sol +55 -50
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +204 -188
- package/contracts/registry/ServiceAuthorizationV3.sol +7 -9
- package/contracts/shared/Component.sol +12 -32
- package/contracts/shared/ComponentService.sol +20 -29
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +2 -3
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +0 -1
- package/contracts/shared/IInstanceLinkedComponent.sol +8 -15
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +5 -6
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +21 -5
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +4 -4
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +16 -11
- package/contracts/shared/TokenHandler.sol +99 -22
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +2 -1
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +11 -29
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +3 -17
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/ObjectType.sol +16 -11
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/UFixed.sol +4 -0
- package/contracts/upgradeability/ProxyManager.sol +67 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +2 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -12,14 +12,14 @@ contract PolicyServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with product service implementation
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
|
-
ProxyManager(registryAddress)
|
19
18
|
{
|
20
19
|
PolicyService svc = new PolicyService{salt: salt}();
|
21
|
-
bytes memory data = abi.encode(
|
22
|
-
IVersionable versionable =
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
23
|
address(svc),
|
24
24
|
data,
|
25
25
|
salt);
|
@@ -31,11 +31,8 @@ contract PricingService is
|
|
31
31
|
ComponentVerifyingService,
|
32
32
|
IPricingService
|
33
33
|
{
|
34
|
-
using UFixedLib for UFixed;
|
35
|
-
|
36
34
|
IDistributionService internal _distributionService;
|
37
35
|
|
38
|
-
|
39
36
|
function _initialize(
|
40
37
|
address owner,
|
41
38
|
bytes memory data
|
@@ -45,13 +42,12 @@ contract PricingService is
|
|
45
42
|
initializer()
|
46
43
|
{
|
47
44
|
(
|
48
|
-
address registryAddress
|
49
|
-
//address managerAddress
|
45
|
+
address registryAddress,
|
50
46
|
address authority
|
51
|
-
) = abi.decode(data, (address, address
|
47
|
+
) = abi.decode(data, (address, address));
|
52
48
|
|
53
|
-
|
54
|
-
|
49
|
+
_initializeService(registryAddress, authority, owner);
|
50
|
+
_registerInterface(type(IPricingService).interfaceId);
|
55
51
|
|
56
52
|
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
57
53
|
}
|
@@ -71,7 +67,7 @@ contract PricingService is
|
|
71
67
|
view
|
72
68
|
virtual override
|
73
69
|
returns (
|
74
|
-
IPolicy.
|
70
|
+
IPolicy.PremiumInfo memory premium
|
75
71
|
)
|
76
72
|
{
|
77
73
|
InstanceReader reader;
|
@@ -84,6 +80,7 @@ contract PricingService is
|
|
84
80
|
IInstance instance
|
85
81
|
) = _getAndVerifyComponentInfo(productNftId, PRODUCT(), false);
|
86
82
|
|
83
|
+
// get instance reader from local instance variable
|
87
84
|
reader = instance.getInstanceReader();
|
88
85
|
|
89
86
|
// calculate net premium
|
@@ -104,19 +101,21 @@ contract PricingService is
|
|
104
101
|
revert ErrorIPricingServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, productInfo.poolNftId);
|
105
102
|
}
|
106
103
|
|
107
|
-
// calculate
|
104
|
+
// calculate fixed fees for product, pool, bundle
|
108
105
|
premium = _getFixedFeeAmounts(
|
109
106
|
netPremiumAmount,
|
110
107
|
productInfo,
|
111
108
|
bundleInfo
|
112
109
|
);
|
113
110
|
|
111
|
+
// calculate variable fees for product, pool, bundle
|
114
112
|
premium = _calculateVariableFeeAmounts(
|
115
113
|
premium,
|
116
114
|
productInfo,
|
117
115
|
bundleInfo
|
118
116
|
);
|
119
117
|
|
118
|
+
// calculate distribution fee and (if applicable) commission
|
120
119
|
premium = _calculateDistributionOwnerFeeAmount(
|
121
120
|
premium,
|
122
121
|
productInfo,
|
@@ -124,18 +123,18 @@ contract PricingService is
|
|
124
123
|
reader
|
125
124
|
);
|
126
125
|
|
126
|
+
// calculate resulting amounts for product, pool, and distribution wallets
|
127
127
|
premium = _calculateTargetWalletAmounts(premium);
|
128
128
|
|
129
129
|
// sanity check to validate the fee calculation
|
130
|
-
if(
|
131
|
-
premium.productFeeAmount
|
130
|
+
if(premium.premiumAmount != premium.productFeeAmount
|
132
131
|
+ premium.distributionFeeAndCommissionAmount
|
133
132
|
+ premium.poolPremiumAndFeeAmount)
|
134
133
|
{
|
135
134
|
revert ErrorPricingServiceTargetWalletAmountsMismatch();
|
136
135
|
}
|
137
136
|
|
138
|
-
if (premium.distributionOwnerFeeFixAmount < productInfo.minDistributionOwnerFee.fixedFee) {
|
137
|
+
if (premium.distributionOwnerFeeFixAmount.toInt() < productInfo.minDistributionOwnerFee.fixedFee) {
|
139
138
|
revert ErrorIPricingServiceFeeCalculationMismatch(
|
140
139
|
premium.distributionFeeFixAmount,
|
141
140
|
premium.distributionFeeVarAmount,
|
@@ -168,64 +167,64 @@ contract PricingService is
|
|
168
167
|
internal
|
169
168
|
pure
|
170
169
|
returns (
|
171
|
-
IPolicy.
|
170
|
+
IPolicy.PremiumInfo memory premium
|
172
171
|
)
|
173
172
|
{
|
174
173
|
// initial premium amount is the net premium
|
175
|
-
premium.netPremiumAmount = netPremiumAmount
|
176
|
-
premium.fullPremiumAmount = netPremiumAmount
|
174
|
+
premium.netPremiumAmount = netPremiumAmount;
|
175
|
+
premium.fullPremiumAmount = netPremiumAmount;
|
177
176
|
|
178
|
-
|
177
|
+
Amount t = AmountLib.toAmount(productInfo.productFee.fixedFee);
|
179
178
|
premium.productFeeFixAmount = t;
|
180
|
-
premium.fullPremiumAmount
|
179
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
181
180
|
|
182
|
-
t = productInfo.poolFee.fixedFee;
|
181
|
+
t = AmountLib.toAmount(productInfo.poolFee.fixedFee);
|
183
182
|
premium.poolFeeFixAmount = t;
|
184
|
-
premium.fullPremiumAmount
|
183
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
185
184
|
|
186
|
-
t = bundleInfo.fee.fixedFee;
|
185
|
+
t = AmountLib.toAmount(bundleInfo.fee.fixedFee);
|
187
186
|
premium.bundleFeeFixAmount = t;
|
188
|
-
premium.fullPremiumAmount
|
187
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
189
188
|
|
190
|
-
t = productInfo.distributionFee.fixedFee;
|
189
|
+
t = AmountLib.toAmount(productInfo.distributionFee.fixedFee);
|
191
190
|
premium.distributionFeeFixAmount = t;
|
192
|
-
premium.fullPremiumAmount
|
191
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
193
192
|
}
|
194
193
|
|
195
194
|
function _calculateVariableFeeAmounts(
|
196
|
-
IPolicy.
|
195
|
+
IPolicy.PremiumInfo memory premium,
|
197
196
|
IComponents.ProductInfo memory productInfo,
|
198
197
|
IBundle.BundleInfo memory bundleInfo
|
199
198
|
)
|
200
199
|
internal
|
201
200
|
pure
|
202
201
|
returns (
|
203
|
-
IPolicy.
|
202
|
+
IPolicy.PremiumInfo memory intermadiatePremium
|
204
203
|
)
|
205
204
|
{
|
206
|
-
|
205
|
+
Amount netPremiumAmount = premium.netPremiumAmount;
|
207
206
|
|
208
|
-
|
207
|
+
Amount t = netPremiumAmount.multiplyWith(productInfo.productFee.fractionalFee);
|
209
208
|
premium.productFeeVarAmount = t;
|
210
|
-
premium.fullPremiumAmount
|
209
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
211
210
|
|
212
|
-
t = (
|
211
|
+
t = netPremiumAmount.multiplyWith(productInfo.poolFee.fractionalFee);
|
213
212
|
premium.poolFeeVarAmount = t;
|
214
|
-
premium.fullPremiumAmount
|
213
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
215
214
|
|
216
|
-
t = (
|
215
|
+
t = netPremiumAmount.multiplyWith(bundleInfo.fee.fractionalFee);
|
217
216
|
premium.bundleFeeVarAmount = t;
|
218
|
-
premium.fullPremiumAmount
|
217
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
219
218
|
|
220
|
-
t = (
|
219
|
+
t = netPremiumAmount.multiplyWith(productInfo.distributionFee.fractionalFee);
|
221
220
|
premium.distributionFeeVarAmount = t;
|
222
|
-
premium.fullPremiumAmount
|
221
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
223
222
|
|
224
223
|
return premium;
|
225
224
|
}
|
226
225
|
|
227
226
|
function _calculateDistributionOwnerFeeAmount(
|
228
|
-
IPolicy.
|
227
|
+
IPolicy.PremiumInfo memory premium,
|
229
228
|
IComponents.ProductInfo memory productInfo,
|
230
229
|
// ISetup.DistributionSetupInfo memory distInfo,
|
231
230
|
ReferralId referralId,
|
@@ -233,11 +232,11 @@ contract PricingService is
|
|
233
232
|
)
|
234
233
|
internal
|
235
234
|
view
|
236
|
-
returns (IPolicy.
|
235
|
+
returns (IPolicy.PremiumInfo memory finalPremium)
|
237
236
|
{
|
238
237
|
|
239
238
|
// if the referral is not valid, then the distribution owner gets everything
|
240
|
-
if (! _distributionService.referralIsValid(productInfo.distributionNftId, referralId)) {
|
239
|
+
if (productInfo.distributionNftId.eqz() || ! _distributionService.referralIsValid(productInfo.distributionNftId, referralId)) {
|
241
240
|
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
242
241
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
243
242
|
premium.premiumAmount = premium.fullPremiumAmount;
|
@@ -253,10 +252,10 @@ contract PricingService is
|
|
253
252
|
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
254
253
|
IDistribution.DistributorTypeInfo memory distributorTypeInfo = reader.getDistributorTypeInfo(distributorInfo.distributorType);
|
255
254
|
|
256
|
-
|
255
|
+
Amount commissionAmount = premium.netPremiumAmount.multiplyWith(distributorTypeInfo.commissionPercentage);
|
257
256
|
premium.commissionAmount = commissionAmount;
|
258
|
-
premium.discountAmount =
|
259
|
-
premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
|
257
|
+
premium.discountAmount = premium.fullPremiumAmount.multiplyWith(referralInfo.discountPercentage);
|
258
|
+
premium.distributionOwnerFeeFixAmount = AmountLib.toAmount(minDistributionOwnerFee.fixedFee);
|
260
259
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount - commissionAmount - premium.discountAmount;
|
261
260
|
premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
|
262
261
|
}
|
@@ -266,29 +265,27 @@ contract PricingService is
|
|
266
265
|
|
267
266
|
|
268
267
|
function _calculateTargetWalletAmounts(
|
269
|
-
IPolicy.
|
268
|
+
IPolicy.PremiumInfo memory premium
|
270
269
|
)
|
271
270
|
internal
|
272
271
|
virtual
|
273
272
|
view
|
274
273
|
returns (
|
275
|
-
IPolicy.
|
274
|
+
IPolicy.PremiumInfo memory premiumWithTargetWalletAmounts
|
276
275
|
)
|
277
276
|
{
|
278
277
|
// fees for product owner
|
279
|
-
premium.productFeeAmount =
|
280
|
-
premium.productFeeFixAmount + premium.productFeeVarAmount);
|
278
|
+
premium.productFeeAmount = premium.productFeeFixAmount + premium.productFeeVarAmount;
|
281
279
|
|
282
280
|
// fees for distribution owner + distributor commission
|
283
|
-
premium.distributionFeeAndCommissionAmount =
|
281
|
+
premium.distributionFeeAndCommissionAmount =
|
284
282
|
premium.distributionFeeFixAmount + premium.distributionOwnerFeeVarAmount
|
285
|
-
+ premium.commissionAmount
|
283
|
+
+ premium.commissionAmount;
|
286
284
|
|
287
285
|
// net premium + fees for pool owner + bundle owner
|
288
|
-
premium.poolPremiumAndFeeAmount =
|
289
|
-
premium.netPremiumAmount
|
286
|
+
premium.poolPremiumAndFeeAmount = premium.netPremiumAmount
|
290
287
|
+ premium.poolFeeFixAmount + premium.poolFeeVarAmount
|
291
|
-
+ premium.bundleFeeFixAmount + premium.bundleFeeVarAmount
|
288
|
+
+ premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
292
289
|
|
293
290
|
premiumWithTargetWalletAmounts = premium;
|
294
291
|
}
|
@@ -15,11 +15,11 @@ contract PricingServiceManager is ProxyManager {
|
|
15
15
|
address registryAddress,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
|
-
ProxyManager(registryAddress)
|
19
18
|
{
|
20
19
|
PricingService pricingSrv = new PricingService{salt: salt}();
|
21
|
-
bytes memory data = abi.encode(registryAddress,
|
22
|
-
IVersionable versionable =
|
20
|
+
bytes memory data = abi.encode(registryAddress, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registryAddress,
|
23
23
|
address(pricingSrv),
|
24
24
|
data,
|
25
25
|
salt);
|
@@ -1,8 +1,6 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
-
|
6
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
5
|
import {ClaimId} from "../type/ClaimId.sol";
|
8
6
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
@@ -12,22 +10,19 @@ import {IApplicationService} from "./IApplicationService.sol";
|
|
12
10
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
13
11
|
import {IComponentService} from "../shared/IComponentService.sol";
|
14
12
|
import {IPolicyService} from "./IPolicyService.sol";
|
15
|
-
import {
|
13
|
+
import {IRiskService} from "./IRiskService.sol";
|
16
14
|
import {IClaimService} from "./IClaimService.sol";
|
17
15
|
import {IPricingService} from "./IPricingService.sol";
|
18
16
|
import {IProductComponent} from "./IProductComponent.sol";
|
19
|
-
import {NftId
|
17
|
+
import {NftId} from "../type/NftId.sol";
|
20
18
|
import {PayoutId} from "../type/PayoutId.sol";
|
21
|
-
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
19
|
+
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE } from "../type/ObjectType.sol";
|
22
20
|
import {ReferralId} from "../type/Referral.sol";
|
23
21
|
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
24
22
|
import {Seconds} from "../type/Seconds.sol";
|
25
23
|
import {StateId} from "../type/StateId.sol";
|
26
24
|
import {Timestamp} from "../type/Timestamp.sol";
|
27
25
|
|
28
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
29
|
-
|
30
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
31
26
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
32
27
|
import {IComponents} from "../instance/module/IComponents.sol";
|
33
28
|
import {Pool} from "../pool/Pool.sol";
|
@@ -41,7 +36,7 @@ abstract contract Product is
|
|
41
36
|
bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
|
42
37
|
|
43
38
|
struct ProductStorage {
|
44
|
-
|
39
|
+
IRiskService _riskService;
|
45
40
|
IApplicationService _applicationService;
|
46
41
|
IPolicyService _policyService;
|
47
42
|
IClaimService _claimService;
|
@@ -54,6 +49,30 @@ abstract contract Product is
|
|
54
49
|
}
|
55
50
|
|
56
51
|
|
52
|
+
function register()
|
53
|
+
external
|
54
|
+
virtual
|
55
|
+
onlyOwner()
|
56
|
+
{
|
57
|
+
_getProductStorage()._componentService.registerProduct();
|
58
|
+
_approveTokenHandler(type(uint256).max);
|
59
|
+
}
|
60
|
+
|
61
|
+
|
62
|
+
function processFundedClaim(
|
63
|
+
NftId policyNftId,
|
64
|
+
ClaimId claimId,
|
65
|
+
Amount availableAmount
|
66
|
+
)
|
67
|
+
external
|
68
|
+
virtual
|
69
|
+
restricted() // pool service role
|
70
|
+
onlyNftOfType(policyNftId, POLICY())
|
71
|
+
{
|
72
|
+
// default implementation does nothing
|
73
|
+
}
|
74
|
+
|
75
|
+
|
57
76
|
function calculatePremium(
|
58
77
|
Amount sumInsuredAmount,
|
59
78
|
RiskId riskId,
|
@@ -62,12 +81,13 @@ abstract contract Product is
|
|
62
81
|
NftId bundleNftId,
|
63
82
|
ReferralId referralId
|
64
83
|
)
|
65
|
-
|
84
|
+
public
|
66
85
|
view
|
67
86
|
override
|
87
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
68
88
|
returns (Amount premiumAmount)
|
69
89
|
{
|
70
|
-
IPolicy.
|
90
|
+
IPolicy.PremiumInfo memory premium = _getProductStorage()._pricingService.calculatePremium(
|
71
91
|
getNftId(),
|
72
92
|
riskId,
|
73
93
|
sumInsuredAmount,
|
@@ -77,14 +97,14 @@ abstract contract Product is
|
|
77
97
|
referralId
|
78
98
|
);
|
79
99
|
|
80
|
-
return
|
100
|
+
return premium.premiumAmount;
|
81
101
|
}
|
82
102
|
|
83
103
|
function calculateNetPremium(
|
84
104
|
Amount sumInsuredAmount,
|
85
|
-
RiskId
|
86
|
-
Seconds
|
87
|
-
bytes memory
|
105
|
+
RiskId,
|
106
|
+
Seconds,
|
107
|
+
bytes memory
|
88
108
|
)
|
89
109
|
external
|
90
110
|
view
|
@@ -96,16 +116,6 @@ abstract contract Product is
|
|
96
116
|
}
|
97
117
|
|
98
118
|
|
99
|
-
function register()
|
100
|
-
external
|
101
|
-
virtual
|
102
|
-
onlyOwner()
|
103
|
-
{
|
104
|
-
_getProductStorage()._componentService.registerProduct();
|
105
|
-
_approveTokenHandler(type(uint256).max);
|
106
|
-
}
|
107
|
-
|
108
|
-
|
109
119
|
function getInitialProductInfo()
|
110
120
|
public
|
111
121
|
virtual
|
@@ -117,6 +127,7 @@ abstract contract Product is
|
|
117
127
|
return IComponents.ProductInfo({
|
118
128
|
distributionNftId: $._distributionNftId,
|
119
129
|
poolNftId: $._poolNftId,
|
130
|
+
isProcessingFundedClaims: false,
|
120
131
|
productFee: FeeLib.zero(),
|
121
132
|
processingFee: FeeLib.zero(),
|
122
133
|
distributionFee: FeeLib.zero(),
|
@@ -127,13 +138,6 @@ abstract contract Product is
|
|
127
138
|
});
|
128
139
|
}
|
129
140
|
|
130
|
-
function getPoolNftId() external view override returns (NftId poolNftId) {
|
131
|
-
return getRegistry().getNftId(address(_getProductStorage()._pool));
|
132
|
-
}
|
133
|
-
|
134
|
-
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
135
|
-
return getRegistry().getNftId(address(_getProductStorage()._distribution));
|
136
|
-
}
|
137
141
|
|
138
142
|
function _initializeProduct(
|
139
143
|
address registry,
|
@@ -143,8 +147,9 @@ abstract contract Product is
|
|
143
147
|
string memory name,
|
144
148
|
address token,
|
145
149
|
bool isInterceptor,
|
146
|
-
address pool,
|
147
|
-
address distribution,
|
150
|
+
address pool, // switch to pool nft id (#527)
|
151
|
+
address distribution, // switch to distribution nft id (#527)
|
152
|
+
// add NftId [] oracleNftIds (#527)
|
148
153
|
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
149
154
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
150
155
|
)
|
@@ -166,8 +171,8 @@ abstract contract Product is
|
|
166
171
|
|
167
172
|
ProductStorage storage $ = _getProductStorage();
|
168
173
|
// TODO add validation
|
169
|
-
// TODO refactor to go via registry
|
170
|
-
$.
|
174
|
+
// TODO refactor to go via registry for all components linked to this product (#527)
|
175
|
+
$._riskService = IRiskService(_getServiceAddress(PRODUCT()));
|
171
176
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
172
177
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
173
178
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
@@ -175,10 +180,10 @@ abstract contract Product is
|
|
175
180
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
176
181
|
$._pool = Pool(pool);
|
177
182
|
$._distribution = Distribution(distribution);
|
178
|
-
$._poolNftId = getRegistry().
|
179
|
-
$._distributionNftId = getRegistry().
|
183
|
+
$._poolNftId = getRegistry().getNftIdForAddress(pool);
|
184
|
+
$._distributionNftId = getRegistry().getNftIdForAddress(distribution);
|
180
185
|
|
181
|
-
|
186
|
+
_registerInterface(type(IProductComponent).interfaceId);
|
182
187
|
}
|
183
188
|
|
184
189
|
|
@@ -197,7 +202,7 @@ abstract contract Product is
|
|
197
202
|
RiskId id,
|
198
203
|
bytes memory data
|
199
204
|
) internal {
|
200
|
-
|
205
|
+
_getRiskService().createRisk(
|
201
206
|
id,
|
202
207
|
data
|
203
208
|
);
|
@@ -207,7 +212,7 @@ abstract contract Product is
|
|
207
212
|
RiskId id,
|
208
213
|
bytes memory data
|
209
214
|
) internal {
|
210
|
-
|
215
|
+
_getRiskService().updateRisk(
|
211
216
|
id,
|
212
217
|
data
|
213
218
|
);
|
@@ -217,7 +222,7 @@ abstract contract Product is
|
|
217
222
|
RiskId id,
|
218
223
|
StateId state
|
219
224
|
) internal {
|
220
|
-
|
225
|
+
_getRiskService().updateRiskState(
|
221
226
|
id,
|
222
227
|
state
|
223
228
|
);
|
@@ -233,6 +238,7 @@ abstract contract Product is
|
|
233
238
|
address applicationOwner,
|
234
239
|
RiskId riskId,
|
235
240
|
Amount sumInsuredAmount,
|
241
|
+
Amount premiumAmount,
|
236
242
|
Seconds lifetime,
|
237
243
|
NftId bundleNftId,
|
238
244
|
ReferralId referralId,
|
@@ -245,6 +251,7 @@ abstract contract Product is
|
|
245
251
|
applicationOwner,
|
246
252
|
riskId,
|
247
253
|
sumInsuredAmount,
|
254
|
+
premiumAmount,
|
248
255
|
lifetime,
|
249
256
|
bundleNftId,
|
250
257
|
referralId,
|
@@ -252,16 +259,14 @@ abstract contract Product is
|
|
252
259
|
);
|
253
260
|
}
|
254
261
|
|
255
|
-
function
|
256
|
-
NftId
|
257
|
-
bool requirePremiumPayment,
|
262
|
+
function _createPolicy(
|
263
|
+
NftId applicationNftId,
|
258
264
|
Timestamp activateAt
|
259
265
|
)
|
260
266
|
internal
|
261
267
|
{
|
262
|
-
_getProductStorage()._policyService.
|
263
|
-
|
264
|
-
requirePremiumPayment,
|
268
|
+
_getProductStorage()._policyService.createPolicy(
|
269
|
+
applicationNftId,
|
265
270
|
activateAt);
|
266
271
|
}
|
267
272
|
|
@@ -279,9 +284,9 @@ abstract contract Product is
|
|
279
284
|
Timestamp expireAt
|
280
285
|
)
|
281
286
|
internal
|
282
|
-
returns (Timestamp)
|
287
|
+
returns (Timestamp expiredAt)
|
283
288
|
{
|
284
|
-
|
289
|
+
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
285
290
|
}
|
286
291
|
|
287
292
|
function _collectPremium(
|
@@ -384,6 +389,24 @@ abstract contract Product is
|
|
384
389
|
data);
|
385
390
|
}
|
386
391
|
|
392
|
+
function _createPayoutForBeneficiary(
|
393
|
+
NftId policyNftId,
|
394
|
+
ClaimId claimId,
|
395
|
+
Amount amount,
|
396
|
+
address beneficiary,
|
397
|
+
bytes memory data
|
398
|
+
)
|
399
|
+
internal
|
400
|
+
returns (PayoutId)
|
401
|
+
{
|
402
|
+
return _getProductStorage()._claimService.createPayoutForBeneficiary(
|
403
|
+
policyNftId,
|
404
|
+
claimId,
|
405
|
+
amount,
|
406
|
+
beneficiary,
|
407
|
+
data);
|
408
|
+
}
|
409
|
+
|
387
410
|
function _processPayout(
|
388
411
|
NftId policyNftId,
|
389
412
|
PayoutId payoutId
|
@@ -399,13 +422,13 @@ abstract contract Product is
|
|
399
422
|
return RiskIdLib.toRiskId(riskName);
|
400
423
|
}
|
401
424
|
|
402
|
-
function _getProductStorage()
|
425
|
+
function _getProductStorage() internal pure returns (ProductStorage storage $) {
|
403
426
|
assembly {
|
404
427
|
$.slot := PRODUCT_STORAGE_LOCATION_V1
|
405
428
|
}
|
406
429
|
}
|
407
430
|
|
408
|
-
function
|
409
|
-
return _getProductStorage().
|
431
|
+
function _getRiskService() internal view returns (IRiskService) {
|
432
|
+
return _getProductStorage()._riskService;
|
410
433
|
}
|
411
434
|
}
|
@@ -4,7 +4,7 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IInstance} from "../instance/IInstance.sol";
|
5
5
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
6
6
|
import {IPoolService} from "../pool/PoolService.sol";
|
7
|
-
import {
|
7
|
+
import {IRiskService} from "./IRiskService.sol";
|
8
8
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
9
9
|
import {IRisk} from "../instance/module/IRisk.sol";
|
10
10
|
|
@@ -16,16 +16,14 @@ import {RiskId} from "../type/RiskId.sol";
|
|
16
16
|
import {StateId} from "../type/StateId.sol";
|
17
17
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
18
18
|
|
19
|
-
contract
|
19
|
+
contract RiskService is
|
20
20
|
ComponentVerifyingService,
|
21
|
-
|
21
|
+
IRiskService
|
22
22
|
{
|
23
23
|
IInstanceService private _instanceService;
|
24
24
|
IPoolService internal _poolService;
|
25
25
|
IRegistryService private _registryService;
|
26
26
|
|
27
|
-
event LogProductServiceSender(address sender);
|
28
|
-
|
29
27
|
function _initialize(
|
30
28
|
address owner,
|
31
29
|
bytes memory data
|
@@ -35,18 +33,17 @@ contract ProductService is
|
|
35
33
|
virtual override
|
36
34
|
{
|
37
35
|
(
|
38
|
-
address registryAddress
|
39
|
-
//address managerAddress
|
36
|
+
address registryAddress,
|
40
37
|
address authority
|
41
|
-
) = abi.decode(data, (address, address
|
38
|
+
) = abi.decode(data, (address, address));
|
42
39
|
|
43
|
-
|
40
|
+
_initializeService(registryAddress, authority, owner);
|
44
41
|
|
45
42
|
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
46
43
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
47
44
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
48
45
|
|
49
|
-
|
46
|
+
_registerInterface(type(IRiskService).interfaceId);
|
50
47
|
}
|
51
48
|
|
52
49
|
|
@@ -0,0 +1,39 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
|
+
import {RiskService} from "./RiskService.sol";
|
7
|
+
|
8
|
+
contract RiskServiceManager is ProxyManager {
|
9
|
+
|
10
|
+
RiskService private _riskService;
|
11
|
+
|
12
|
+
/// @dev initializes proxy manager with product service implementation
|
13
|
+
constructor(
|
14
|
+
address authority,
|
15
|
+
address registry,
|
16
|
+
bytes32 salt
|
17
|
+
)
|
18
|
+
{
|
19
|
+
RiskService svc = new RiskService{salt: salt}();
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
|
+
address(svc),
|
24
|
+
data,
|
25
|
+
salt);
|
26
|
+
|
27
|
+
_riskService = RiskService(address(versionable));
|
28
|
+
}
|
29
|
+
|
30
|
+
//--- view functions ----------------------------------------------------//
|
31
|
+
function getRiskService()
|
32
|
+
external
|
33
|
+
view
|
34
|
+
returns (RiskService riskService)
|
35
|
+
{
|
36
|
+
return _riskService;
|
37
|
+
}
|
38
|
+
|
39
|
+
}
|