@etherisc/gif-next 0.0.2-8fb3945-498 → 0.0.2-906d113-035
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 +151 -249
- 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 +91 -213
- 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 +78 -66
- 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 +1538 -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 +2077 -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 +1471 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -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 +53 -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 +56 -123
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +166 -139
- 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 +132 -230
- 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 +73 -61
- 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 +86 -208
- 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 +109 -216
- 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 +98 -58
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +232 -131
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +109 -203
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +328 -292
- 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 -224
- 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 +131 -78
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +248 -222
- 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 -224
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +286 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -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 +68 -175
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +355 -339
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +122 -148
- 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 +55 -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 +73 -61
- 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 +86 -208
- 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 +149 -49
- 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 +82 -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 +173 -298
- 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 +103 -124
- 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 -40
- 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 +7 -17
- package/contracts/distribution/DistributionService.sol +80 -47
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- 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 +418 -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 +10 -30
- package/contracts/instance/IInstanceService.sol +0 -20
- package/contracts/instance/Instance.sol +29 -51
- package/contracts/instance/InstanceAdmin.sol +42 -31
- package/contracts/instance/InstanceAuthorizationV3.sol +11 -21
- package/contracts/instance/InstanceReader.sol +106 -19
- package/contracts/instance/InstanceService.sol +25 -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 +78 -34
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +10 -0
- package/contracts/pool/IPoolComponent.sol +18 -8
- package/contracts/pool/IPoolService.sol +49 -29
- package/contracts/pool/Pool.sol +53 -46
- package/contracts/pool/PoolService.sol +140 -124
- 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/{IProductService.sol → IRiskService.sol} +1 -2
- package/contracts/product/PolicyService.sol +198 -101
- 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 +108 -66
- package/contracts/product/{ProductService.sol → RiskService.sol} +7 -10
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +68 -38
- package/contracts/registry/IRegistry.sol +55 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +342 -201
- package/contracts/registry/RegistryAdmin.sol +134 -51
- 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 +30 -33
- package/contracts/shared/ComponentService.sol +233 -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 +2 -17
- 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/shared/TokenHandler.sol +24 -16
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +2 -1
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -0
- package/contracts/staking/Staking.sol +11 -10
- 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/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/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/product/ProductServiceManager.sol +0 -39
- 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,37 +1,36 @@
|
|
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
|
-
import {
|
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
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";
|
25
26
|
import {StateId} from "../type/StateId.sol";
|
26
27
|
import {Timestamp} from "../type/Timestamp.sol";
|
27
28
|
|
28
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
29
|
-
|
30
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
31
29
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
32
30
|
import {IComponents} from "../instance/module/IComponents.sol";
|
33
|
-
import {
|
34
|
-
import {
|
31
|
+
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
32
|
+
import {IOracleComponent} from "../oracle/IOracleComponent.sol";
|
33
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
35
34
|
|
36
35
|
abstract contract Product is
|
37
36
|
InstanceLinkedComponent,
|
@@ -41,16 +40,39 @@ abstract contract Product is
|
|
41
40
|
bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
|
42
41
|
|
43
42
|
struct ProductStorage {
|
44
|
-
|
43
|
+
bool _isProcessingFundedClaims;
|
44
|
+
bool _hasDistribution;
|
45
|
+
uint8 _numberOfOracles;
|
46
|
+
IRiskService _riskService;
|
45
47
|
IApplicationService _applicationService;
|
46
48
|
IPolicyService _policyService;
|
47
49
|
IClaimService _claimService;
|
48
50
|
IPricingService _pricingService;
|
49
51
|
IComponentService _componentService;
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
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
|
54
76
|
}
|
55
77
|
|
56
78
|
|
@@ -65,9 +87,10 @@ abstract contract Product is
|
|
65
87
|
public
|
66
88
|
view
|
67
89
|
override
|
90
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
68
91
|
returns (Amount premiumAmount)
|
69
92
|
{
|
70
|
-
IPolicy.
|
93
|
+
IPolicy.PremiumInfo memory premium = _getProductStorage()._pricingService.calculatePremium(
|
71
94
|
getNftId(),
|
72
95
|
riskId,
|
73
96
|
sumInsuredAmount,
|
@@ -77,14 +100,14 @@ abstract contract Product is
|
|
77
100
|
referralId
|
78
101
|
);
|
79
102
|
|
80
|
-
return
|
103
|
+
return premium.premiumAmount;
|
81
104
|
}
|
82
105
|
|
83
106
|
function calculateNetPremium(
|
84
107
|
Amount sumInsuredAmount,
|
85
|
-
RiskId
|
86
|
-
Seconds
|
87
|
-
bytes memory
|
108
|
+
RiskId,
|
109
|
+
Seconds,
|
110
|
+
bytes memory
|
88
111
|
)
|
89
112
|
external
|
90
113
|
view
|
@@ -96,16 +119,6 @@ abstract contract Product is
|
|
96
119
|
}
|
97
120
|
|
98
121
|
|
99
|
-
function register()
|
100
|
-
external
|
101
|
-
virtual
|
102
|
-
onlyOwner()
|
103
|
-
{
|
104
|
-
_getProductStorage()._componentService.registerProduct();
|
105
|
-
_approveTokenHandler(type(uint256).max);
|
106
|
-
}
|
107
|
-
|
108
|
-
|
109
122
|
function getInitialProductInfo()
|
110
123
|
public
|
111
124
|
virtual
|
@@ -115,8 +128,13 @@ abstract contract Product is
|
|
115
128
|
ProductStorage storage $ = _getProductStorage();
|
116
129
|
|
117
130
|
return IComponents.ProductInfo({
|
118
|
-
|
119
|
-
|
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),
|
120
138
|
productFee: FeeLib.zero(),
|
121
139
|
processingFee: FeeLib.zero(),
|
122
140
|
distributionFee: FeeLib.zero(),
|
@@ -127,13 +145,6 @@ abstract contract Product is
|
|
127
145
|
});
|
128
146
|
}
|
129
147
|
|
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
148
|
|
138
149
|
function _initializeProduct(
|
139
150
|
address registry,
|
@@ -143,9 +154,9 @@ abstract contract Product is
|
|
143
154
|
string memory name,
|
144
155
|
address token,
|
145
156
|
bool isInterceptor,
|
146
|
-
|
147
|
-
|
148
|
-
|
157
|
+
bool isProcessingFundedClaims,
|
158
|
+
bool hasDistribution,
|
159
|
+
uint8 numberOfOracles,
|
149
160
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
150
161
|
)
|
151
162
|
internal
|
@@ -161,24 +172,20 @@ abstract contract Product is
|
|
161
172
|
authorization,
|
162
173
|
isInterceptor,
|
163
174
|
initialOwner,
|
164
|
-
registryData,
|
165
175
|
componentData);
|
166
176
|
|
167
177
|
ProductStorage storage $ = _getProductStorage();
|
168
|
-
|
169
|
-
|
170
|
-
$.
|
178
|
+
$._isProcessingFundedClaims = isProcessingFundedClaims;
|
179
|
+
$._hasDistribution = hasDistribution;
|
180
|
+
$._numberOfOracles = numberOfOracles;
|
181
|
+
$._riskService = IRiskService(_getServiceAddress(PRODUCT()));
|
171
182
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
172
183
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
173
184
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
174
185
|
$._pricingService = IPricingService(_getServiceAddress(PRICE()));
|
175
186
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
176
|
-
$._pool = Pool(pool);
|
177
|
-
$._distribution = Distribution(distribution);
|
178
|
-
$._poolNftId = getRegistry().getNftId(pool);
|
179
|
-
$._distributionNftId = getRegistry().getNftId(distribution);
|
180
187
|
|
181
|
-
|
188
|
+
_registerInterface(type(IProductComponent).interfaceId);
|
182
189
|
}
|
183
190
|
|
184
191
|
|
@@ -196,8 +203,11 @@ abstract contract Product is
|
|
196
203
|
function _createRisk(
|
197
204
|
RiskId id,
|
198
205
|
bytes memory data
|
199
|
-
)
|
200
|
-
|
206
|
+
)
|
207
|
+
internal
|
208
|
+
virtual
|
209
|
+
{
|
210
|
+
_getProductStorage()._riskService.createRisk(
|
201
211
|
id,
|
202
212
|
data
|
203
213
|
);
|
@@ -206,8 +216,11 @@ abstract contract Product is
|
|
206
216
|
function _updateRisk(
|
207
217
|
RiskId id,
|
208
218
|
bytes memory data
|
209
|
-
)
|
210
|
-
|
219
|
+
)
|
220
|
+
internal
|
221
|
+
virtual
|
222
|
+
{
|
223
|
+
_getProductStorage()._riskService.updateRisk(
|
211
224
|
id,
|
212
225
|
data
|
213
226
|
);
|
@@ -216,15 +229,18 @@ abstract contract Product is
|
|
216
229
|
function _updateRiskState(
|
217
230
|
RiskId id,
|
218
231
|
StateId state
|
219
|
-
)
|
220
|
-
|
232
|
+
)
|
233
|
+
internal
|
234
|
+
virtual
|
235
|
+
{
|
236
|
+
_getProductStorage()._riskService.updateRiskState(
|
221
237
|
id,
|
222
238
|
state
|
223
239
|
);
|
224
240
|
}
|
225
241
|
|
226
242
|
|
227
|
-
function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
|
243
|
+
function _getRiskInfo(RiskId id) internal virtual view returns (IRisk.RiskInfo memory info) {
|
228
244
|
return getInstance().getInstanceReader().getRiskInfo(id);
|
229
245
|
}
|
230
246
|
|
@@ -240,6 +256,7 @@ abstract contract Product is
|
|
240
256
|
bytes memory applicationData
|
241
257
|
)
|
242
258
|
internal
|
259
|
+
virtual
|
243
260
|
returns (NftId applicationNftId)
|
244
261
|
{
|
245
262
|
return _getProductStorage()._applicationService.create(
|
@@ -256,14 +273,13 @@ abstract contract Product is
|
|
256
273
|
|
257
274
|
function _createPolicy(
|
258
275
|
NftId applicationNftId,
|
259
|
-
bool requirePremiumPayment,
|
260
276
|
Timestamp activateAt
|
261
277
|
)
|
262
278
|
internal
|
279
|
+
virtual
|
263
280
|
{
|
264
281
|
_getProductStorage()._policyService.createPolicy(
|
265
282
|
applicationNftId,
|
266
|
-
requirePremiumPayment,
|
267
283
|
activateAt);
|
268
284
|
}
|
269
285
|
|
@@ -271,6 +287,7 @@ abstract contract Product is
|
|
271
287
|
NftId policyNftId
|
272
288
|
)
|
273
289
|
internal
|
290
|
+
virtual
|
274
291
|
{
|
275
292
|
_getProductStorage()._policyService.decline(
|
276
293
|
policyNftId);
|
@@ -281,6 +298,7 @@ abstract contract Product is
|
|
281
298
|
Timestamp expireAt
|
282
299
|
)
|
283
300
|
internal
|
301
|
+
virtual
|
284
302
|
returns (Timestamp expiredAt)
|
285
303
|
{
|
286
304
|
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
@@ -291,6 +309,7 @@ abstract contract Product is
|
|
291
309
|
Timestamp activateAt
|
292
310
|
)
|
293
311
|
internal
|
312
|
+
virtual
|
294
313
|
{
|
295
314
|
_getProductStorage()._policyService.collectPremium(
|
296
315
|
policyNftId,
|
@@ -302,6 +321,7 @@ abstract contract Product is
|
|
302
321
|
Timestamp activateAt
|
303
322
|
)
|
304
323
|
internal
|
324
|
+
virtual
|
305
325
|
{
|
306
326
|
_getProductStorage()._policyService.activate(
|
307
327
|
policyNftId,
|
@@ -312,6 +332,7 @@ abstract contract Product is
|
|
312
332
|
NftId policyNftId
|
313
333
|
)
|
314
334
|
internal
|
335
|
+
virtual
|
315
336
|
{
|
316
337
|
_getProductStorage()._policyService.close(
|
317
338
|
policyNftId);
|
@@ -323,6 +344,7 @@ abstract contract Product is
|
|
323
344
|
bytes memory claimData
|
324
345
|
)
|
325
346
|
internal
|
347
|
+
virtual
|
326
348
|
returns(ClaimId)
|
327
349
|
{
|
328
350
|
return _getProductStorage()._claimService.submit(
|
@@ -338,6 +360,7 @@ abstract contract Product is
|
|
338
360
|
bytes memory data
|
339
361
|
)
|
340
362
|
internal
|
363
|
+
virtual
|
341
364
|
{
|
342
365
|
_getProductStorage()._claimService.confirm(
|
343
366
|
policyNftId,
|
@@ -352,6 +375,7 @@ abstract contract Product is
|
|
352
375
|
bytes memory data
|
353
376
|
)
|
354
377
|
internal
|
378
|
+
virtual
|
355
379
|
{
|
356
380
|
_getProductStorage()._claimService.decline(
|
357
381
|
policyNftId,
|
@@ -364,6 +388,7 @@ abstract contract Product is
|
|
364
388
|
ClaimId claimId
|
365
389
|
)
|
366
390
|
internal
|
391
|
+
virtual
|
367
392
|
{
|
368
393
|
_getProductStorage()._claimService.close(
|
369
394
|
policyNftId,
|
@@ -377,6 +402,7 @@ abstract contract Product is
|
|
377
402
|
bytes memory data
|
378
403
|
)
|
379
404
|
internal
|
405
|
+
virtual
|
380
406
|
returns (PayoutId)
|
381
407
|
{
|
382
408
|
return _getProductStorage()._claimService.createPayout(
|
@@ -386,28 +412,44 @@ abstract contract Product is
|
|
386
412
|
data);
|
387
413
|
}
|
388
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
|
+
|
389
434
|
function _processPayout(
|
390
435
|
NftId policyNftId,
|
391
436
|
PayoutId payoutId
|
392
437
|
)
|
393
438
|
internal
|
439
|
+
virtual
|
394
440
|
{
|
395
441
|
_getProductStorage()._claimService.processPayout(
|
396
442
|
policyNftId,
|
397
443
|
payoutId);
|
398
444
|
}
|
399
445
|
|
400
|
-
function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
|
446
|
+
function _toRiskId(string memory riskName) internal virtual pure returns (RiskId riskId) {
|
401
447
|
return RiskIdLib.toRiskId(riskName);
|
402
448
|
}
|
403
449
|
|
404
|
-
function _getProductStorage()
|
450
|
+
function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
|
405
451
|
assembly {
|
406
452
|
$.slot := PRODUCT_STORAGE_LOCATION_V1
|
407
453
|
}
|
408
454
|
}
|
409
|
-
|
410
|
-
function _getProductService() internal view returns (IProductService) {
|
411
|
-
return _getProductStorage()._productService;
|
412
|
-
}
|
413
455
|
}
|