@etherisc/gif-next 0.0.2-f1e0c66-773 → 0.0.2-f1f3b2c-994
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 +7 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +81 -63
- 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 +2 -2
- 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 +48 -30
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +21 -2
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +72 -9
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -248
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +16 -16
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -222
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +134 -286
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +84 -120
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +21 -37
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +49 -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 +1512 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1999 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -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 +1432 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1192 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1566 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2001 -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/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +10 -99
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +145 -111
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +14 -14
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +437 -124
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +39 -146
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +61 -81
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +285 -218
- 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 +45 -4
- 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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +47 -232
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +18 -18
- 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 +15 -31
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +15 -216
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +37 -144
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +60 -80
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -274
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +16 -16
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +319 -188
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +130 -94
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +149 -23
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -88
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +360 -171
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +41 -270
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +492 -333
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +98 -82
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +36 -162
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +57 -89
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +43 -242
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +16 -16
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +263 -181
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +104 -100
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +147 -6
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +282 -119
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +43 -57
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +399 -327
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +104 -100
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +115 -267
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +80 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +43 -242
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -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 +238 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- 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 +436 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +261 -143
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +23 -313
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +52 -72
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +46 -5
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +117 -215
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +70 -12
- 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 +15 -205
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +89 -212
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +96 -114
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +5 -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 +15 -20
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +15 -31
- 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/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/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- 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 +15 -216
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +41 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +41 -0
- 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 +6 -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 +8 -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 +5 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- 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 +42 -21
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- 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 +100 -256
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +45 -4
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +77 -88
- 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 +31 -138
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +56 -76
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +168 -127
- 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/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +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 +50 -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 +23 -4
- 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 +39 -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 +31 -24
- package/contracts/authorization/Authorization.sol +5 -2
- package/contracts/authorization/IAccessAdmin.sol +3 -2
- package/contracts/authorization/IServiceAuthorization.sol +4 -2
- package/contracts/authorization/ServiceAuthorization.sol +27 -11
- package/contracts/distribution/Distribution.sol +1 -1
- package/contracts/distribution/DistributionService.sol +32 -33
- 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 +115 -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 +9 -4
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +4 -7
- package/contracts/instance/module/IPolicy.sol +24 -24
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/Oracle.sol +2 -1
- package/contracts/oracle/OracleService.sol +11 -8
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +7 -5
- package/contracts/pool/BasicPoolAuthorization.sol +5 -2
- package/contracts/pool/BundleService.sol +166 -46
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +31 -8
- package/contracts/pool/IPoolComponent.sol +18 -8
- package/contracts/pool/IPoolService.sol +57 -36
- package/contracts/pool/Pool.sol +59 -34
- package/contracts/pool/PoolService.sol +231 -102
- 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 +251 -87
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +31 -7
- package/contracts/product/IPolicyService.sol +34 -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 +379 -192
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +46 -46
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +81 -50
- 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 +51 -18
- package/contracts/registry/IRegistryService.sol +0 -9
- package/contracts/registry/Registry.sol +328 -197
- package/contracts/registry/RegistryAdmin.sol +134 -51
- package/contracts/registry/RegistryService.sol +55 -48
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +194 -183
- package/contracts/registry/ServiceAuthorizationV3.sol +8 -10
- package/contracts/shared/Component.sol +25 -29
- package/contracts/shared/ComponentService.sol +20 -30
- 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 +7 -4
- package/contracts/shared/IInstanceLinkedComponent.sol +8 -15
- package/contracts/shared/ILifecycle.sol +3 -1
- 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 +13 -2
- package/contracts/shared/NftOwnable.sol +5 -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 +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +2 -1
- 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 +10 -14
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/Blocknumber.sol +7 -1
- 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 +21 -1
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +11 -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);
|
@@ -45,13 +45,12 @@ contract PricingService is
|
|
45
45
|
initializer()
|
46
46
|
{
|
47
47
|
(
|
48
|
-
address registryAddress
|
49
|
-
//address managerAddress
|
48
|
+
address registryAddress,
|
50
49
|
address authority
|
51
|
-
) = abi.decode(data, (address, address
|
50
|
+
) = abi.decode(data, (address, address));
|
52
51
|
|
53
|
-
|
54
|
-
|
52
|
+
_initializeService(registryAddress, authority, owner);
|
53
|
+
_registerInterface(type(IPricingService).interfaceId);
|
55
54
|
|
56
55
|
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
57
56
|
}
|
@@ -71,7 +70,7 @@ contract PricingService is
|
|
71
70
|
view
|
72
71
|
virtual override
|
73
72
|
returns (
|
74
|
-
IPolicy.
|
73
|
+
IPolicy.PremiumInfo memory premium
|
75
74
|
)
|
76
75
|
{
|
77
76
|
InstanceReader reader;
|
@@ -84,6 +83,7 @@ contract PricingService is
|
|
84
83
|
IInstance instance
|
85
84
|
) = _getAndVerifyComponentInfo(productNftId, PRODUCT(), false);
|
86
85
|
|
86
|
+
// get instance reader from local instance variable
|
87
87
|
reader = instance.getInstanceReader();
|
88
88
|
|
89
89
|
// calculate net premium
|
@@ -104,19 +104,21 @@ contract PricingService is
|
|
104
104
|
revert ErrorIPricingServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, productInfo.poolNftId);
|
105
105
|
}
|
106
106
|
|
107
|
-
// calculate
|
107
|
+
// calculate fixed fees for product, pool, bundle
|
108
108
|
premium = _getFixedFeeAmounts(
|
109
109
|
netPremiumAmount,
|
110
110
|
productInfo,
|
111
111
|
bundleInfo
|
112
112
|
);
|
113
113
|
|
114
|
+
// calculate variable fees for product, pool, bundle
|
114
115
|
premium = _calculateVariableFeeAmounts(
|
115
116
|
premium,
|
116
117
|
productInfo,
|
117
118
|
bundleInfo
|
118
119
|
);
|
119
120
|
|
121
|
+
// calculate distribution fee and (if applicable) commission
|
120
122
|
premium = _calculateDistributionOwnerFeeAmount(
|
121
123
|
premium,
|
122
124
|
productInfo,
|
@@ -124,18 +126,18 @@ contract PricingService is
|
|
124
126
|
reader
|
125
127
|
);
|
126
128
|
|
129
|
+
// calculate resulting amounts for product, pool, and distribution wallets
|
127
130
|
premium = _calculateTargetWalletAmounts(premium);
|
128
131
|
|
129
132
|
// sanity check to validate the fee calculation
|
130
|
-
if(
|
131
|
-
premium.productFeeAmount
|
133
|
+
if(premium.premiumAmount != premium.productFeeAmount
|
132
134
|
+ premium.distributionFeeAndCommissionAmount
|
133
135
|
+ premium.poolPremiumAndFeeAmount)
|
134
136
|
{
|
135
137
|
revert ErrorPricingServiceTargetWalletAmountsMismatch();
|
136
138
|
}
|
137
139
|
|
138
|
-
if (premium.distributionOwnerFeeFixAmount < productInfo.minDistributionOwnerFee.fixedFee) {
|
140
|
+
if (premium.distributionOwnerFeeFixAmount.toInt() < productInfo.minDistributionOwnerFee.fixedFee) {
|
139
141
|
revert ErrorIPricingServiceFeeCalculationMismatch(
|
140
142
|
premium.distributionFeeFixAmount,
|
141
143
|
premium.distributionFeeVarAmount,
|
@@ -168,64 +170,64 @@ contract PricingService is
|
|
168
170
|
internal
|
169
171
|
pure
|
170
172
|
returns (
|
171
|
-
IPolicy.
|
173
|
+
IPolicy.PremiumInfo memory premium
|
172
174
|
)
|
173
175
|
{
|
174
176
|
// initial premium amount is the net premium
|
175
|
-
premium.netPremiumAmount = netPremiumAmount
|
176
|
-
premium.fullPremiumAmount = netPremiumAmount
|
177
|
+
premium.netPremiumAmount = netPremiumAmount;
|
178
|
+
premium.fullPremiumAmount = netPremiumAmount;
|
177
179
|
|
178
|
-
|
180
|
+
Amount t = AmountLib.toAmount(productInfo.productFee.fixedFee);
|
179
181
|
premium.productFeeFixAmount = t;
|
180
|
-
premium.fullPremiumAmount
|
182
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
181
183
|
|
182
|
-
t = productInfo.poolFee.fixedFee;
|
184
|
+
t = AmountLib.toAmount(productInfo.poolFee.fixedFee);
|
183
185
|
premium.poolFeeFixAmount = t;
|
184
|
-
premium.fullPremiumAmount
|
186
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
185
187
|
|
186
|
-
t = bundleInfo.fee.fixedFee;
|
188
|
+
t = AmountLib.toAmount(bundleInfo.fee.fixedFee);
|
187
189
|
premium.bundleFeeFixAmount = t;
|
188
|
-
premium.fullPremiumAmount
|
190
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
189
191
|
|
190
|
-
t = productInfo.distributionFee.fixedFee;
|
192
|
+
t = AmountLib.toAmount(productInfo.distributionFee.fixedFee);
|
191
193
|
premium.distributionFeeFixAmount = t;
|
192
|
-
premium.fullPremiumAmount
|
194
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
193
195
|
}
|
194
196
|
|
195
197
|
function _calculateVariableFeeAmounts(
|
196
|
-
IPolicy.
|
198
|
+
IPolicy.PremiumInfo memory premium,
|
197
199
|
IComponents.ProductInfo memory productInfo,
|
198
200
|
IBundle.BundleInfo memory bundleInfo
|
199
201
|
)
|
200
202
|
internal
|
201
203
|
pure
|
202
204
|
returns (
|
203
|
-
IPolicy.
|
205
|
+
IPolicy.PremiumInfo memory intermadiatePremium
|
204
206
|
)
|
205
207
|
{
|
206
|
-
|
208
|
+
Amount netPremiumAmount = premium.netPremiumAmount;
|
207
209
|
|
208
|
-
|
210
|
+
Amount t = netPremiumAmount.multiplyWith(productInfo.productFee.fractionalFee);
|
209
211
|
premium.productFeeVarAmount = t;
|
210
|
-
premium.fullPremiumAmount
|
212
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
211
213
|
|
212
|
-
t = (
|
214
|
+
t = netPremiumAmount.multiplyWith(productInfo.poolFee.fractionalFee);
|
213
215
|
premium.poolFeeVarAmount = t;
|
214
|
-
premium.fullPremiumAmount
|
216
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
215
217
|
|
216
|
-
t = (
|
218
|
+
t = netPremiumAmount.multiplyWith(bundleInfo.fee.fractionalFee);
|
217
219
|
premium.bundleFeeVarAmount = t;
|
218
|
-
premium.fullPremiumAmount
|
220
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
219
221
|
|
220
|
-
t = (
|
222
|
+
t = netPremiumAmount.multiplyWith(productInfo.distributionFee.fractionalFee);
|
221
223
|
premium.distributionFeeVarAmount = t;
|
222
|
-
premium.fullPremiumAmount
|
224
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
223
225
|
|
224
226
|
return premium;
|
225
227
|
}
|
226
228
|
|
227
229
|
function _calculateDistributionOwnerFeeAmount(
|
228
|
-
IPolicy.
|
230
|
+
IPolicy.PremiumInfo memory premium,
|
229
231
|
IComponents.ProductInfo memory productInfo,
|
230
232
|
// ISetup.DistributionSetupInfo memory distInfo,
|
231
233
|
ReferralId referralId,
|
@@ -233,7 +235,7 @@ contract PricingService is
|
|
233
235
|
)
|
234
236
|
internal
|
235
237
|
view
|
236
|
-
returns (IPolicy.
|
238
|
+
returns (IPolicy.PremiumInfo memory finalPremium)
|
237
239
|
{
|
238
240
|
|
239
241
|
// if the referral is not valid, then the distribution owner gets everything
|
@@ -253,10 +255,10 @@ contract PricingService is
|
|
253
255
|
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
254
256
|
IDistribution.DistributorTypeInfo memory distributorTypeInfo = reader.getDistributorTypeInfo(distributorInfo.distributorType);
|
255
257
|
|
256
|
-
|
258
|
+
Amount commissionAmount = premium.netPremiumAmount.multiplyWith(distributorTypeInfo.commissionPercentage);
|
257
259
|
premium.commissionAmount = commissionAmount;
|
258
|
-
premium.discountAmount =
|
259
|
-
premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
|
260
|
+
premium.discountAmount = premium.fullPremiumAmount.multiplyWith(referralInfo.discountPercentage);
|
261
|
+
premium.distributionOwnerFeeFixAmount = AmountLib.toAmount(minDistributionOwnerFee.fixedFee);
|
260
262
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount - commissionAmount - premium.discountAmount;
|
261
263
|
premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
|
262
264
|
}
|
@@ -266,29 +268,27 @@ contract PricingService is
|
|
266
268
|
|
267
269
|
|
268
270
|
function _calculateTargetWalletAmounts(
|
269
|
-
IPolicy.
|
271
|
+
IPolicy.PremiumInfo memory premium
|
270
272
|
)
|
271
273
|
internal
|
272
274
|
virtual
|
273
275
|
view
|
274
276
|
returns (
|
275
|
-
IPolicy.
|
277
|
+
IPolicy.PremiumInfo memory premiumWithTargetWalletAmounts
|
276
278
|
)
|
277
279
|
{
|
278
280
|
// fees for product owner
|
279
|
-
premium.productFeeAmount =
|
280
|
-
premium.productFeeFixAmount + premium.productFeeVarAmount);
|
281
|
+
premium.productFeeAmount = premium.productFeeFixAmount + premium.productFeeVarAmount;
|
281
282
|
|
282
283
|
// fees for distribution owner + distributor commission
|
283
|
-
premium.distributionFeeAndCommissionAmount =
|
284
|
+
premium.distributionFeeAndCommissionAmount =
|
284
285
|
premium.distributionFeeFixAmount + premium.distributionOwnerFeeVarAmount
|
285
|
-
+ premium.commissionAmount
|
286
|
+
+ premium.commissionAmount;
|
286
287
|
|
287
288
|
// net premium + fees for pool owner + bundle owner
|
288
|
-
premium.poolPremiumAndFeeAmount =
|
289
|
-
premium.netPremiumAmount
|
289
|
+
premium.poolPremiumAndFeeAmount = premium.netPremiumAmount
|
290
290
|
+ premium.poolFeeFixAmount + premium.poolFeeVarAmount
|
291
|
-
+ premium.bundleFeeFixAmount + premium.bundleFeeVarAmount
|
291
|
+
+ premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
292
292
|
|
293
293
|
premiumWithTargetWalletAmounts = premium;
|
294
294
|
}
|
@@ -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,11 +10,11 @@ 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
19
|
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
22
20
|
import {ReferralId} from "../type/Referral.sol";
|
@@ -25,9 +23,6 @@ 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,29 @@ 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
|
+
{
|
71
|
+
// default implementation does nothing
|
72
|
+
}
|
73
|
+
|
74
|
+
|
57
75
|
function calculatePremium(
|
58
76
|
Amount sumInsuredAmount,
|
59
77
|
RiskId riskId,
|
@@ -62,12 +80,12 @@ abstract contract Product is
|
|
62
80
|
NftId bundleNftId,
|
63
81
|
ReferralId referralId
|
64
82
|
)
|
65
|
-
|
83
|
+
public
|
66
84
|
view
|
67
85
|
override
|
68
86
|
returns (Amount premiumAmount)
|
69
87
|
{
|
70
|
-
IPolicy.
|
88
|
+
IPolicy.PremiumInfo memory premium = _getProductStorage()._pricingService.calculatePremium(
|
71
89
|
getNftId(),
|
72
90
|
riskId,
|
73
91
|
sumInsuredAmount,
|
@@ -77,14 +95,14 @@ abstract contract Product is
|
|
77
95
|
referralId
|
78
96
|
);
|
79
97
|
|
80
|
-
return
|
98
|
+
return premium.premiumAmount;
|
81
99
|
}
|
82
100
|
|
83
101
|
function calculateNetPremium(
|
84
102
|
Amount sumInsuredAmount,
|
85
|
-
RiskId
|
86
|
-
Seconds
|
87
|
-
bytes memory
|
103
|
+
RiskId,
|
104
|
+
Seconds,
|
105
|
+
bytes memory
|
88
106
|
)
|
89
107
|
external
|
90
108
|
view
|
@@ -96,16 +114,6 @@ abstract contract Product is
|
|
96
114
|
}
|
97
115
|
|
98
116
|
|
99
|
-
function register()
|
100
|
-
external
|
101
|
-
virtual
|
102
|
-
onlyOwner()
|
103
|
-
{
|
104
|
-
_getProductStorage()._componentService.registerProduct();
|
105
|
-
_approveTokenHandler(type(uint256).max);
|
106
|
-
}
|
107
|
-
|
108
|
-
|
109
117
|
function getInitialProductInfo()
|
110
118
|
public
|
111
119
|
virtual
|
@@ -117,6 +125,7 @@ abstract contract Product is
|
|
117
125
|
return IComponents.ProductInfo({
|
118
126
|
distributionNftId: $._distributionNftId,
|
119
127
|
poolNftId: $._poolNftId,
|
128
|
+
isProcessingFundedClaims: false,
|
120
129
|
productFee: FeeLib.zero(),
|
121
130
|
processingFee: FeeLib.zero(),
|
122
131
|
distributionFee: FeeLib.zero(),
|
@@ -127,13 +136,6 @@ abstract contract Product is
|
|
127
136
|
});
|
128
137
|
}
|
129
138
|
|
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
139
|
|
138
140
|
function _initializeProduct(
|
139
141
|
address registry,
|
@@ -143,8 +145,9 @@ abstract contract Product is
|
|
143
145
|
string memory name,
|
144
146
|
address token,
|
145
147
|
bool isInterceptor,
|
146
|
-
address pool,
|
147
|
-
address distribution,
|
148
|
+
address pool, // switch to pool nft id (#527)
|
149
|
+
address distribution, // switch to distribution nft id (#527)
|
150
|
+
// add NftId [] oracleNftIds (#527)
|
148
151
|
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
149
152
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
150
153
|
)
|
@@ -166,8 +169,8 @@ abstract contract Product is
|
|
166
169
|
|
167
170
|
ProductStorage storage $ = _getProductStorage();
|
168
171
|
// TODO add validation
|
169
|
-
// TODO refactor to go via registry
|
170
|
-
$.
|
172
|
+
// TODO refactor to go via registry for all components linked to this product (#527)
|
173
|
+
$._riskService = IRiskService(_getServiceAddress(PRODUCT()));
|
171
174
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
172
175
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
173
176
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
@@ -175,10 +178,10 @@ abstract contract Product is
|
|
175
178
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
176
179
|
$._pool = Pool(pool);
|
177
180
|
$._distribution = Distribution(distribution);
|
178
|
-
$._poolNftId = getRegistry().
|
179
|
-
$._distributionNftId = getRegistry().
|
181
|
+
$._poolNftId = getRegistry().getNftIdForAddress(pool);
|
182
|
+
$._distributionNftId = getRegistry().getNftIdForAddress(distribution);
|
180
183
|
|
181
|
-
|
184
|
+
_registerInterface(type(IProductComponent).interfaceId);
|
182
185
|
}
|
183
186
|
|
184
187
|
|
@@ -197,7 +200,7 @@ abstract contract Product is
|
|
197
200
|
RiskId id,
|
198
201
|
bytes memory data
|
199
202
|
) internal {
|
200
|
-
|
203
|
+
_getRiskService().createRisk(
|
201
204
|
id,
|
202
205
|
data
|
203
206
|
);
|
@@ -207,7 +210,7 @@ abstract contract Product is
|
|
207
210
|
RiskId id,
|
208
211
|
bytes memory data
|
209
212
|
) internal {
|
210
|
-
|
213
|
+
_getRiskService().updateRisk(
|
211
214
|
id,
|
212
215
|
data
|
213
216
|
);
|
@@ -217,7 +220,7 @@ abstract contract Product is
|
|
217
220
|
RiskId id,
|
218
221
|
StateId state
|
219
222
|
) internal {
|
220
|
-
|
223
|
+
_getRiskService().updateRiskState(
|
221
224
|
id,
|
222
225
|
state
|
223
226
|
);
|
@@ -233,6 +236,7 @@ abstract contract Product is
|
|
233
236
|
address applicationOwner,
|
234
237
|
RiskId riskId,
|
235
238
|
Amount sumInsuredAmount,
|
239
|
+
Amount premiumAmount,
|
236
240
|
Seconds lifetime,
|
237
241
|
NftId bundleNftId,
|
238
242
|
ReferralId referralId,
|
@@ -245,6 +249,7 @@ abstract contract Product is
|
|
245
249
|
applicationOwner,
|
246
250
|
riskId,
|
247
251
|
sumInsuredAmount,
|
252
|
+
premiumAmount,
|
248
253
|
lifetime,
|
249
254
|
bundleNftId,
|
250
255
|
referralId,
|
@@ -252,16 +257,14 @@ abstract contract Product is
|
|
252
257
|
);
|
253
258
|
}
|
254
259
|
|
255
|
-
function
|
256
|
-
NftId
|
257
|
-
bool requirePremiumPayment,
|
260
|
+
function _createPolicy(
|
261
|
+
NftId applicationNftId,
|
258
262
|
Timestamp activateAt
|
259
263
|
)
|
260
264
|
internal
|
261
265
|
{
|
262
|
-
_getProductStorage()._policyService.
|
263
|
-
|
264
|
-
requirePremiumPayment,
|
266
|
+
_getProductStorage()._policyService.createPolicy(
|
267
|
+
applicationNftId,
|
265
268
|
activateAt);
|
266
269
|
}
|
267
270
|
|
@@ -274,6 +277,16 @@ abstract contract Product is
|
|
274
277
|
policyNftId);
|
275
278
|
}
|
276
279
|
|
280
|
+
function _expire(
|
281
|
+
NftId policyNftId,
|
282
|
+
Timestamp expireAt
|
283
|
+
)
|
284
|
+
internal
|
285
|
+
returns (Timestamp expiredAt)
|
286
|
+
{
|
287
|
+
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
288
|
+
}
|
289
|
+
|
277
290
|
function _collectPremium(
|
278
291
|
NftId policyNftId,
|
279
292
|
Timestamp activateAt
|
@@ -374,6 +387,24 @@ abstract contract Product is
|
|
374
387
|
data);
|
375
388
|
}
|
376
389
|
|
390
|
+
function _createPayoutForBeneficiary(
|
391
|
+
NftId policyNftId,
|
392
|
+
ClaimId claimId,
|
393
|
+
Amount amount,
|
394
|
+
address beneficiary,
|
395
|
+
bytes memory data
|
396
|
+
)
|
397
|
+
internal
|
398
|
+
returns (PayoutId)
|
399
|
+
{
|
400
|
+
return _getProductStorage()._claimService.createPayoutForBeneficiary(
|
401
|
+
policyNftId,
|
402
|
+
claimId,
|
403
|
+
amount,
|
404
|
+
beneficiary,
|
405
|
+
data);
|
406
|
+
}
|
407
|
+
|
377
408
|
function _processPayout(
|
378
409
|
NftId policyNftId,
|
379
410
|
PayoutId payoutId
|
@@ -389,13 +420,13 @@ abstract contract Product is
|
|
389
420
|
return RiskIdLib.toRiskId(riskName);
|
390
421
|
}
|
391
422
|
|
392
|
-
function _getProductStorage()
|
423
|
+
function _getProductStorage() internal pure returns (ProductStorage storage $) {
|
393
424
|
assembly {
|
394
425
|
$.slot := PRODUCT_STORAGE_LOCATION_V1
|
395
426
|
}
|
396
427
|
}
|
397
428
|
|
398
|
-
function
|
399
|
-
return _getProductStorage().
|
429
|
+
function _getRiskService() internal view returns (IRiskService) {
|
430
|
+
return _getProductStorage()._riskService;
|
400
431
|
}
|
401
432
|
}
|
@@ -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
|
+
}
|