@etherisc/gif-next 0.0.2-b8e869c-076 → 0.0.2-b95860d-028
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 +1 -1
- 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 +67 -11
- 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 +40 -3
- 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/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- 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 +148 -222
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +88 -186
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +174 -237
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +99 -111
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +75 -57
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +78 -31
- 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 +1551 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2090 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -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 +1484 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1244 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2108 -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 +48 -31
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +29 -84
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +51 -105
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +165 -138
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +446 -81
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +77 -242
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -87
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +335 -126
- 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 +130 -204
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
- 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 +71 -53
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +84 -182
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -159
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +75 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +107 -190
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +82 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +184 -185
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +120 -104
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +53 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +96 -50
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +200 -135
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +107 -177
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +296 -296
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +102 -94
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +71 -152
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -84
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +143 -200
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +288 -188
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +119 -103
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +29 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +161 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +141 -16
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +129 -70
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +29 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +257 -218
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +110 -110
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +199 -309
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +96 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +143 -200
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +65 -138
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +69 -77
- 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 +114 -35
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +0 -18
- 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 +78 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -75
- 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 +63 -157
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +351 -263
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +120 -110
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -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 +50 -28
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +321 -19
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +71 -53
- 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 +29 -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 +29 -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 +84 -182
- 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 +58 -89
- 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 +47 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +77 -29
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +83 -30
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +166 -206
- 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 +102 -87
- 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 +71 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +71 -79
- 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 +64 -59
- package/contracts/authorization/Authorization.sol +111 -39
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -3
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +2 -1
- package/contracts/distribution/Distribution.sol +5 -15
- package/contracts/distribution/DistributionService.sol +79 -47
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionService.sol +8 -2
- 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 +412 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -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 +4 -1
- package/contracts/instance/IInstanceService.sol +0 -20
- package/contracts/instance/Instance.sol +21 -12
- package/contracts/instance/InstanceAdmin.sol +22 -30
- package/contracts/instance/InstanceAuthorizationV3.sol +11 -21
- package/contracts/instance/InstanceReader.sol +106 -19
- package/contracts/instance/InstanceService.sol +24 -81
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/base/ObjectLifecycle.sol +7 -1
- package/contracts/instance/module/IComponents.sol +10 -5
- package/contracts/instance/module/IPolicy.sol +23 -23
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +6 -16
- package/contracts/oracle/OracleService.sol +47 -34
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +14 -26
- package/contracts/pool/BasicPoolAuthorization.sol +0 -1
- package/contracts/pool/BundleService.sol +40 -15
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +9 -0
- package/contracts/pool/IPoolComponent.sol +18 -8
- package/contracts/pool/IPoolService.sol +24 -20
- package/contracts/pool/Pool.sol +53 -46
- package/contracts/pool/PoolService.sol +106 -122
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +13 -12
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +7 -6
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +268 -93
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IClaimService.sol +30 -7
- package/contracts/product/IPolicyService.sol +16 -20
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +23 -4
- package/contracts/product/PolicyService.sol +197 -98
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +45 -52
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +106 -61
- package/contracts/product/RiskService.sol +4 -5
- package/contracts/product/RiskServiceManager.sol +4 -4
- package/contracts/registry/ChainNft.sol +65 -36
- package/contracts/registry/IRegistry.sol +55 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +0 -1
- package/contracts/registry/Registry.sol +342 -201
- package/contracts/registry/RegistryAdmin.sol +124 -50
- package/contracts/registry/RegistryService.sol +35 -46
- 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 +16 -22
- package/contracts/shared/Component.sol +27 -19
- package/contracts/shared/ComponentService.sol +231 -137
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +23 -14
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +6 -2
- package/contracts/shared/IComponentService.sol +25 -13
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -11
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +72 -31
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +23 -7
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +19 -9
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +20 -18
- package/contracts/staking/IStaking.sol +2 -1
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -0
- package/contracts/staking/Staking.sol +8 -8
- 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/RoleId.sol +0 -12
- 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 +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +2 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -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;
|
@@ -102,7 +98,7 @@ contract PricingService is
|
|
102
98
|
|
103
99
|
IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
104
100
|
if(bundleInfo.poolNftId != productInfo.poolNftId) {
|
105
|
-
revert
|
101
|
+
revert ErrorPricingServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, productInfo.poolNftId);
|
106
102
|
}
|
107
103
|
|
108
104
|
// calculate fixed fees for product, pool, bundle
|
@@ -131,16 +127,15 @@ contract PricingService is
|
|
131
127
|
premium = _calculateTargetWalletAmounts(premium);
|
132
128
|
|
133
129
|
// sanity check to validate the fee calculation
|
134
|
-
if(
|
135
|
-
premium.productFeeAmount
|
130
|
+
if(premium.premiumAmount != premium.productFeeAmount
|
136
131
|
+ premium.distributionFeeAndCommissionAmount
|
137
132
|
+ premium.poolPremiumAndFeeAmount)
|
138
133
|
{
|
139
134
|
revert ErrorPricingServiceTargetWalletAmountsMismatch();
|
140
135
|
}
|
141
136
|
|
142
|
-
if (premium.distributionOwnerFeeFixAmount < productInfo.minDistributionOwnerFee.fixedFee) {
|
143
|
-
revert
|
137
|
+
if (premium.distributionOwnerFeeFixAmount.toInt() < productInfo.minDistributionOwnerFee.fixedFee) {
|
138
|
+
revert ErrorPricingServiceFeeCalculationMismatch(
|
144
139
|
premium.distributionFeeFixAmount,
|
145
140
|
premium.distributionFeeVarAmount,
|
146
141
|
premium.distributionOwnerFeeFixAmount,
|
@@ -151,7 +146,7 @@ contract PricingService is
|
|
151
146
|
}
|
152
147
|
|
153
148
|
if ((premium.distributionFeeVarAmount) != (premium.discountAmount + premium.distributionOwnerFeeVarAmount + premium.commissionAmount)) {
|
154
|
-
revert
|
149
|
+
revert ErrorPricingServiceFeeCalculationMismatch(
|
155
150
|
premium.distributionFeeFixAmount,
|
156
151
|
premium.distributionFeeVarAmount,
|
157
152
|
premium.distributionOwnerFeeFixAmount,
|
@@ -172,64 +167,64 @@ contract PricingService is
|
|
172
167
|
internal
|
173
168
|
pure
|
174
169
|
returns (
|
175
|
-
IPolicy.
|
170
|
+
IPolicy.PremiumInfo memory premium
|
176
171
|
)
|
177
172
|
{
|
178
173
|
// initial premium amount is the net premium
|
179
|
-
premium.netPremiumAmount = netPremiumAmount
|
180
|
-
premium.fullPremiumAmount = netPremiumAmount
|
174
|
+
premium.netPremiumAmount = netPremiumAmount;
|
175
|
+
premium.fullPremiumAmount = netPremiumAmount;
|
181
176
|
|
182
|
-
|
177
|
+
Amount t = AmountLib.toAmount(productInfo.productFee.fixedFee);
|
183
178
|
premium.productFeeFixAmount = t;
|
184
|
-
premium.fullPremiumAmount
|
179
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
185
180
|
|
186
|
-
t = productInfo.poolFee.fixedFee;
|
181
|
+
t = AmountLib.toAmount(productInfo.poolFee.fixedFee);
|
187
182
|
premium.poolFeeFixAmount = t;
|
188
|
-
premium.fullPremiumAmount
|
183
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
189
184
|
|
190
|
-
t = bundleInfo.fee.fixedFee;
|
185
|
+
t = AmountLib.toAmount(bundleInfo.fee.fixedFee);
|
191
186
|
premium.bundleFeeFixAmount = t;
|
192
|
-
premium.fullPremiumAmount
|
187
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
193
188
|
|
194
|
-
t = productInfo.distributionFee.fixedFee;
|
189
|
+
t = AmountLib.toAmount(productInfo.distributionFee.fixedFee);
|
195
190
|
premium.distributionFeeFixAmount = t;
|
196
|
-
premium.fullPremiumAmount
|
191
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
197
192
|
}
|
198
193
|
|
199
194
|
function _calculateVariableFeeAmounts(
|
200
|
-
IPolicy.
|
195
|
+
IPolicy.PremiumInfo memory premium,
|
201
196
|
IComponents.ProductInfo memory productInfo,
|
202
197
|
IBundle.BundleInfo memory bundleInfo
|
203
198
|
)
|
204
199
|
internal
|
205
200
|
pure
|
206
201
|
returns (
|
207
|
-
IPolicy.
|
202
|
+
IPolicy.PremiumInfo memory intermadiatePremium
|
208
203
|
)
|
209
204
|
{
|
210
|
-
|
205
|
+
Amount netPremiumAmount = premium.netPremiumAmount;
|
211
206
|
|
212
|
-
|
207
|
+
Amount t = netPremiumAmount.multiplyWith(productInfo.productFee.fractionalFee);
|
213
208
|
premium.productFeeVarAmount = t;
|
214
|
-
premium.fullPremiumAmount
|
209
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
215
210
|
|
216
|
-
t = (
|
211
|
+
t = netPremiumAmount.multiplyWith(productInfo.poolFee.fractionalFee);
|
217
212
|
premium.poolFeeVarAmount = t;
|
218
|
-
premium.fullPremiumAmount
|
213
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
219
214
|
|
220
|
-
t = (
|
215
|
+
t = netPremiumAmount.multiplyWith(bundleInfo.fee.fractionalFee);
|
221
216
|
premium.bundleFeeVarAmount = t;
|
222
|
-
premium.fullPremiumAmount
|
217
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
223
218
|
|
224
|
-
t = (
|
219
|
+
t = netPremiumAmount.multiplyWith(productInfo.distributionFee.fractionalFee);
|
225
220
|
premium.distributionFeeVarAmount = t;
|
226
|
-
premium.fullPremiumAmount
|
221
|
+
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
227
222
|
|
228
223
|
return premium;
|
229
224
|
}
|
230
225
|
|
231
226
|
function _calculateDistributionOwnerFeeAmount(
|
232
|
-
IPolicy.
|
227
|
+
IPolicy.PremiumInfo memory premium,
|
233
228
|
IComponents.ProductInfo memory productInfo,
|
234
229
|
// ISetup.DistributionSetupInfo memory distInfo,
|
235
230
|
ReferralId referralId,
|
@@ -237,11 +232,11 @@ contract PricingService is
|
|
237
232
|
)
|
238
233
|
internal
|
239
234
|
view
|
240
|
-
returns (IPolicy.
|
235
|
+
returns (IPolicy.PremiumInfo memory finalPremium)
|
241
236
|
{
|
242
237
|
|
243
238
|
// if the referral is not valid, then the distribution owner gets everything
|
244
|
-
if (! _distributionService.referralIsValid(productInfo.distributionNftId, referralId)) {
|
239
|
+
if (productInfo.distributionNftId.eqz() || ! _distributionService.referralIsValid(productInfo.distributionNftId, referralId)) {
|
245
240
|
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
246
241
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
247
242
|
premium.premiumAmount = premium.fullPremiumAmount;
|
@@ -257,10 +252,10 @@ contract PricingService is
|
|
257
252
|
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
258
253
|
IDistribution.DistributorTypeInfo memory distributorTypeInfo = reader.getDistributorTypeInfo(distributorInfo.distributorType);
|
259
254
|
|
260
|
-
|
255
|
+
Amount commissionAmount = premium.netPremiumAmount.multiplyWith(distributorTypeInfo.commissionPercentage);
|
261
256
|
premium.commissionAmount = commissionAmount;
|
262
|
-
premium.discountAmount =
|
263
|
-
premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
|
257
|
+
premium.discountAmount = premium.fullPremiumAmount.multiplyWith(referralInfo.discountPercentage);
|
258
|
+
premium.distributionOwnerFeeFixAmount = AmountLib.toAmount(minDistributionOwnerFee.fixedFee);
|
264
259
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount - commissionAmount - premium.discountAmount;
|
265
260
|
premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
|
266
261
|
}
|
@@ -270,29 +265,27 @@ contract PricingService is
|
|
270
265
|
|
271
266
|
|
272
267
|
function _calculateTargetWalletAmounts(
|
273
|
-
IPolicy.
|
268
|
+
IPolicy.PremiumInfo memory premium
|
274
269
|
)
|
275
270
|
internal
|
276
271
|
virtual
|
277
272
|
view
|
278
273
|
returns (
|
279
|
-
IPolicy.
|
274
|
+
IPolicy.PremiumInfo memory premiumWithTargetWalletAmounts
|
280
275
|
)
|
281
276
|
{
|
282
277
|
// fees for product owner
|
283
|
-
premium.productFeeAmount =
|
284
|
-
premium.productFeeFixAmount + premium.productFeeVarAmount);
|
278
|
+
premium.productFeeAmount = premium.productFeeFixAmount + premium.productFeeVarAmount;
|
285
279
|
|
286
280
|
// fees for distribution owner + distributor commission
|
287
|
-
premium.distributionFeeAndCommissionAmount =
|
281
|
+
premium.distributionFeeAndCommissionAmount =
|
288
282
|
premium.distributionFeeFixAmount + premium.distributionOwnerFeeVarAmount
|
289
|
-
+ premium.commissionAmount
|
283
|
+
+ premium.commissionAmount;
|
290
284
|
|
291
285
|
// net premium + fees for pool owner + bundle owner
|
292
|
-
premium.poolPremiumAndFeeAmount =
|
293
|
-
premium.netPremiumAmount
|
286
|
+
premium.poolPremiumAndFeeAmount = premium.netPremiumAmount
|
294
287
|
+ premium.poolFeeFixAmount + premium.poolFeeVarAmount
|
295
|
-
+ premium.bundleFeeFixAmount + premium.bundleFeeVarAmount
|
288
|
+
+ premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
296
289
|
|
297
290
|
premiumWithTargetWalletAmounts = premium;
|
298
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,24 +1,25 @@
|
|
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
|
-
import {
|
6
|
+
import {IComponent} from "../shared/IComponent.sol";
|
9
7
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
10
8
|
import {IRisk} from "../instance/module/IRisk.sol";
|
11
9
|
import {IApplicationService} from "./IApplicationService.sol";
|
12
10
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
13
11
|
import {IComponentService} from "../shared/IComponentService.sol";
|
12
|
+
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
13
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
14
14
|
import {IPolicyService} from "./IPolicyService.sol";
|
15
15
|
import {IRiskService} from "./IRiskService.sol";
|
16
16
|
import {IClaimService} from "./IClaimService.sol";
|
17
17
|
import {IPricingService} from "./IPricingService.sol";
|
18
18
|
import {IProductComponent} from "./IProductComponent.sol";
|
19
|
-
import {NftId} from "../type/NftId.sol";
|
19
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
20
|
+
import {ObjectType, COMPONENT, DISTRIBUTION, ORACLE, POOL, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
20
21
|
import {PayoutId} from "../type/PayoutId.sol";
|
21
|
-
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
22
|
+
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE } from "../type/ObjectType.sol";
|
22
23
|
import {ReferralId} from "../type/Referral.sol";
|
23
24
|
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
24
25
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -27,8 +28,9 @@ import {Timestamp} from "../type/Timestamp.sol";
|
|
27
28
|
|
28
29
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
29
30
|
import {IComponents} from "../instance/module/IComponents.sol";
|
30
|
-
import {
|
31
|
-
import {
|
31
|
+
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
32
|
+
import {IOracleComponent} from "../oracle/IOracleComponent.sol";
|
33
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
32
34
|
|
33
35
|
abstract contract Product is
|
34
36
|
InstanceLinkedComponent,
|
@@ -38,16 +40,39 @@ abstract contract Product is
|
|
38
40
|
bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
|
39
41
|
|
40
42
|
struct ProductStorage {
|
43
|
+
bool _isProcessingFundedClaims;
|
44
|
+
bool _hasDistribution;
|
45
|
+
uint8 _numberOfOracles;
|
41
46
|
IRiskService _riskService;
|
42
47
|
IApplicationService _applicationService;
|
43
48
|
IPolicyService _policyService;
|
44
49
|
IClaimService _claimService;
|
45
50
|
IPricingService _pricingService;
|
46
51
|
IComponentService _componentService;
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
52
|
+
}
|
53
|
+
|
54
|
+
|
55
|
+
function registerComponent(address component)
|
56
|
+
external
|
57
|
+
virtual
|
58
|
+
onlyOwner()
|
59
|
+
returns (NftId componentNftId)
|
60
|
+
{
|
61
|
+
return _getProductStorage()._componentService.registerComponent(component);
|
62
|
+
}
|
63
|
+
|
64
|
+
|
65
|
+
function processFundedClaim(
|
66
|
+
NftId policyNftId,
|
67
|
+
ClaimId claimId,
|
68
|
+
Amount availableAmount
|
69
|
+
)
|
70
|
+
external
|
71
|
+
virtual
|
72
|
+
restricted() // pool service role
|
73
|
+
onlyNftOfType(policyNftId, POLICY())
|
74
|
+
{
|
75
|
+
// default implementation does nothing
|
51
76
|
}
|
52
77
|
|
53
78
|
|
@@ -62,9 +87,10 @@ abstract contract Product is
|
|
62
87
|
public
|
63
88
|
view
|
64
89
|
override
|
90
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
65
91
|
returns (Amount premiumAmount)
|
66
92
|
{
|
67
|
-
IPolicy.
|
93
|
+
IPolicy.PremiumInfo memory premium = _getProductStorage()._pricingService.calculatePremium(
|
68
94
|
getNftId(),
|
69
95
|
riskId,
|
70
96
|
sumInsuredAmount,
|
@@ -74,14 +100,14 @@ abstract contract Product is
|
|
74
100
|
referralId
|
75
101
|
);
|
76
102
|
|
77
|
-
return
|
103
|
+
return premium.premiumAmount;
|
78
104
|
}
|
79
105
|
|
80
106
|
function calculateNetPremium(
|
81
107
|
Amount sumInsuredAmount,
|
82
|
-
RiskId
|
83
|
-
Seconds
|
84
|
-
bytes memory
|
108
|
+
RiskId,
|
109
|
+
Seconds,
|
110
|
+
bytes memory
|
85
111
|
)
|
86
112
|
external
|
87
113
|
view
|
@@ -93,16 +119,6 @@ abstract contract Product is
|
|
93
119
|
}
|
94
120
|
|
95
121
|
|
96
|
-
function register()
|
97
|
-
external
|
98
|
-
virtual
|
99
|
-
onlyOwner()
|
100
|
-
{
|
101
|
-
_getProductStorage()._componentService.registerProduct();
|
102
|
-
_approveTokenHandler(type(uint256).max);
|
103
|
-
}
|
104
|
-
|
105
|
-
|
106
122
|
function getInitialProductInfo()
|
107
123
|
public
|
108
124
|
virtual
|
@@ -112,8 +128,13 @@ abstract contract Product is
|
|
112
128
|
ProductStorage storage $ = _getProductStorage();
|
113
129
|
|
114
130
|
return IComponents.ProductInfo({
|
115
|
-
|
116
|
-
|
131
|
+
isProcessingFundedClaims: false,
|
132
|
+
hasDistribution: $._hasDistribution,
|
133
|
+
expectedNumberOfOracles: $._numberOfOracles,
|
134
|
+
numberOfOracles: 0,
|
135
|
+
poolNftId: NftIdLib.zero(),
|
136
|
+
distributionNftId: NftIdLib.zero(),
|
137
|
+
oracleNftId: new NftId[]($._numberOfOracles),
|
117
138
|
productFee: FeeLib.zero(),
|
118
139
|
processingFee: FeeLib.zero(),
|
119
140
|
distributionFee: FeeLib.zero(),
|
@@ -124,13 +145,6 @@ abstract contract Product is
|
|
124
145
|
});
|
125
146
|
}
|
126
147
|
|
127
|
-
function getPoolNftId() external view override returns (NftId poolNftId) {
|
128
|
-
return getRegistry().getNftId(address(_getProductStorage()._pool));
|
129
|
-
}
|
130
|
-
|
131
|
-
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
132
|
-
return getRegistry().getNftId(address(_getProductStorage()._distribution));
|
133
|
-
}
|
134
148
|
|
135
149
|
function _initializeProduct(
|
136
150
|
address registry,
|
@@ -140,9 +154,9 @@ abstract contract Product is
|
|
140
154
|
string memory name,
|
141
155
|
address token,
|
142
156
|
bool isInterceptor,
|
143
|
-
|
144
|
-
|
145
|
-
|
157
|
+
bool isProcessingFundedClaims,
|
158
|
+
bool hasDistribution,
|
159
|
+
uint8 numberOfOracles,
|
146
160
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
147
161
|
)
|
148
162
|
internal
|
@@ -158,24 +172,20 @@ abstract contract Product is
|
|
158
172
|
authorization,
|
159
173
|
isInterceptor,
|
160
174
|
initialOwner,
|
161
|
-
registryData,
|
162
175
|
componentData);
|
163
176
|
|
164
177
|
ProductStorage storage $ = _getProductStorage();
|
165
|
-
|
166
|
-
|
178
|
+
$._isProcessingFundedClaims = isProcessingFundedClaims;
|
179
|
+
$._hasDistribution = hasDistribution;
|
180
|
+
$._numberOfOracles = numberOfOracles;
|
167
181
|
$._riskService = IRiskService(_getServiceAddress(PRODUCT()));
|
168
182
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
169
183
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
170
184
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
171
185
|
$._pricingService = IPricingService(_getServiceAddress(PRICE()));
|
172
186
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
173
|
-
$._pool = Pool(pool);
|
174
|
-
$._distribution = Distribution(distribution);
|
175
|
-
$._poolNftId = getRegistry().getNftId(pool);
|
176
|
-
$._distributionNftId = getRegistry().getNftId(distribution);
|
177
187
|
|
178
|
-
|
188
|
+
_registerInterface(type(IProductComponent).interfaceId);
|
179
189
|
}
|
180
190
|
|
181
191
|
|
@@ -193,8 +203,11 @@ abstract contract Product is
|
|
193
203
|
function _createRisk(
|
194
204
|
RiskId id,
|
195
205
|
bytes memory data
|
196
|
-
)
|
197
|
-
|
206
|
+
)
|
207
|
+
internal
|
208
|
+
virtual
|
209
|
+
{
|
210
|
+
_getProductStorage()._riskService.createRisk(
|
198
211
|
id,
|
199
212
|
data
|
200
213
|
);
|
@@ -203,8 +216,11 @@ abstract contract Product is
|
|
203
216
|
function _updateRisk(
|
204
217
|
RiskId id,
|
205
218
|
bytes memory data
|
206
|
-
)
|
207
|
-
|
219
|
+
)
|
220
|
+
internal
|
221
|
+
virtual
|
222
|
+
{
|
223
|
+
_getProductStorage()._riskService.updateRisk(
|
208
224
|
id,
|
209
225
|
data
|
210
226
|
);
|
@@ -213,15 +229,18 @@ abstract contract Product is
|
|
213
229
|
function _updateRiskState(
|
214
230
|
RiskId id,
|
215
231
|
StateId state
|
216
|
-
)
|
217
|
-
|
232
|
+
)
|
233
|
+
internal
|
234
|
+
virtual
|
235
|
+
{
|
236
|
+
_getProductStorage()._riskService.updateRiskState(
|
218
237
|
id,
|
219
238
|
state
|
220
239
|
);
|
221
240
|
}
|
222
241
|
|
223
242
|
|
224
|
-
function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
|
243
|
+
function _getRiskInfo(RiskId id) internal virtual view returns (IRisk.RiskInfo memory info) {
|
225
244
|
return getInstance().getInstanceReader().getRiskInfo(id);
|
226
245
|
}
|
227
246
|
|
@@ -237,6 +256,7 @@ abstract contract Product is
|
|
237
256
|
bytes memory applicationData
|
238
257
|
)
|
239
258
|
internal
|
259
|
+
virtual
|
240
260
|
returns (NftId applicationNftId)
|
241
261
|
{
|
242
262
|
return _getProductStorage()._applicationService.create(
|
@@ -253,14 +273,13 @@ abstract contract Product is
|
|
253
273
|
|
254
274
|
function _createPolicy(
|
255
275
|
NftId applicationNftId,
|
256
|
-
bool requirePremiumPayment,
|
257
276
|
Timestamp activateAt
|
258
277
|
)
|
259
278
|
internal
|
279
|
+
virtual
|
260
280
|
{
|
261
281
|
_getProductStorage()._policyService.createPolicy(
|
262
282
|
applicationNftId,
|
263
|
-
requirePremiumPayment,
|
264
283
|
activateAt);
|
265
284
|
}
|
266
285
|
|
@@ -268,6 +287,7 @@ abstract contract Product is
|
|
268
287
|
NftId policyNftId
|
269
288
|
)
|
270
289
|
internal
|
290
|
+
virtual
|
271
291
|
{
|
272
292
|
_getProductStorage()._policyService.decline(
|
273
293
|
policyNftId);
|
@@ -278,6 +298,7 @@ abstract contract Product is
|
|
278
298
|
Timestamp expireAt
|
279
299
|
)
|
280
300
|
internal
|
301
|
+
virtual
|
281
302
|
returns (Timestamp expiredAt)
|
282
303
|
{
|
283
304
|
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
@@ -288,6 +309,7 @@ abstract contract Product is
|
|
288
309
|
Timestamp activateAt
|
289
310
|
)
|
290
311
|
internal
|
312
|
+
virtual
|
291
313
|
{
|
292
314
|
_getProductStorage()._policyService.collectPremium(
|
293
315
|
policyNftId,
|
@@ -299,6 +321,7 @@ abstract contract Product is
|
|
299
321
|
Timestamp activateAt
|
300
322
|
)
|
301
323
|
internal
|
324
|
+
virtual
|
302
325
|
{
|
303
326
|
_getProductStorage()._policyService.activate(
|
304
327
|
policyNftId,
|
@@ -309,6 +332,7 @@ abstract contract Product is
|
|
309
332
|
NftId policyNftId
|
310
333
|
)
|
311
334
|
internal
|
335
|
+
virtual
|
312
336
|
{
|
313
337
|
_getProductStorage()._policyService.close(
|
314
338
|
policyNftId);
|
@@ -320,6 +344,7 @@ abstract contract Product is
|
|
320
344
|
bytes memory claimData
|
321
345
|
)
|
322
346
|
internal
|
347
|
+
virtual
|
323
348
|
returns(ClaimId)
|
324
349
|
{
|
325
350
|
return _getProductStorage()._claimService.submit(
|
@@ -335,6 +360,7 @@ abstract contract Product is
|
|
335
360
|
bytes memory data
|
336
361
|
)
|
337
362
|
internal
|
363
|
+
virtual
|
338
364
|
{
|
339
365
|
_getProductStorage()._claimService.confirm(
|
340
366
|
policyNftId,
|
@@ -349,6 +375,7 @@ abstract contract Product is
|
|
349
375
|
bytes memory data
|
350
376
|
)
|
351
377
|
internal
|
378
|
+
virtual
|
352
379
|
{
|
353
380
|
_getProductStorage()._claimService.decline(
|
354
381
|
policyNftId,
|
@@ -361,6 +388,7 @@ abstract contract Product is
|
|
361
388
|
ClaimId claimId
|
362
389
|
)
|
363
390
|
internal
|
391
|
+
virtual
|
364
392
|
{
|
365
393
|
_getProductStorage()._claimService.close(
|
366
394
|
policyNftId,
|
@@ -374,6 +402,7 @@ abstract contract Product is
|
|
374
402
|
bytes memory data
|
375
403
|
)
|
376
404
|
internal
|
405
|
+
virtual
|
377
406
|
returns (PayoutId)
|
378
407
|
{
|
379
408
|
return _getProductStorage()._claimService.createPayout(
|
@@ -383,28 +412,44 @@ abstract contract Product is
|
|
383
412
|
data);
|
384
413
|
}
|
385
414
|
|
415
|
+
function _createPayoutForBeneficiary(
|
416
|
+
NftId policyNftId,
|
417
|
+
ClaimId claimId,
|
418
|
+
Amount amount,
|
419
|
+
address beneficiary,
|
420
|
+
bytes memory data
|
421
|
+
)
|
422
|
+
internal
|
423
|
+
virtual
|
424
|
+
returns (PayoutId)
|
425
|
+
{
|
426
|
+
return _getProductStorage()._claimService.createPayoutForBeneficiary(
|
427
|
+
policyNftId,
|
428
|
+
claimId,
|
429
|
+
amount,
|
430
|
+
beneficiary,
|
431
|
+
data);
|
432
|
+
}
|
433
|
+
|
386
434
|
function _processPayout(
|
387
435
|
NftId policyNftId,
|
388
436
|
PayoutId payoutId
|
389
437
|
)
|
390
438
|
internal
|
439
|
+
virtual
|
391
440
|
{
|
392
441
|
_getProductStorage()._claimService.processPayout(
|
393
442
|
policyNftId,
|
394
443
|
payoutId);
|
395
444
|
}
|
396
445
|
|
397
|
-
function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
|
446
|
+
function _toRiskId(string memory riskName) internal virtual pure returns (RiskId riskId) {
|
398
447
|
return RiskIdLib.toRiskId(riskName);
|
399
448
|
}
|
400
449
|
|
401
|
-
function _getProductStorage()
|
450
|
+
function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
|
402
451
|
assembly {
|
403
452
|
$.slot := PRODUCT_STORAGE_LOCATION_V1
|
404
453
|
}
|
405
454
|
}
|
406
|
-
|
407
|
-
function _getRiskService() internal view returns (IRiskService) {
|
408
|
-
return _getProductStorage()._riskService;
|
409
|
-
}
|
410
455
|
}
|
@@ -33,18 +33,17 @@ contract RiskService is
|
|
33
33
|
virtual override
|
34
34
|
{
|
35
35
|
(
|
36
|
-
address registryAddress
|
37
|
-
//address managerAddress
|
36
|
+
address registryAddress,
|
38
37
|
address authority
|
39
|
-
) = abi.decode(data, (address, address
|
38
|
+
) = abi.decode(data, (address, address));
|
40
39
|
|
41
|
-
|
40
|
+
_initializeService(registryAddress, authority, owner);
|
42
41
|
|
43
42
|
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
44
43
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
45
44
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
46
45
|
|
47
|
-
|
46
|
+
_registerInterface(type(IRiskService).interfaceId);
|
48
47
|
}
|
49
48
|
|
50
49
|
|