@etherisc/gif-next 0.0.2-9dd41ff-671 → 0.0.2-9ed3c41-176
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 +30 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +148 -352
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +154 -335
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +72 -97
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +151 -251
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +67 -64
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +71 -72
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +190 -49
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +81 -141
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1158 -278
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +493 -332
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +271 -109
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +65 -58
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1103 -359
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +21 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +95 -268
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +60 -73
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -51
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +149 -285
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +134 -133
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +191 -348
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +180 -368
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +47 -84
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +93 -167
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +61 -50
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +121 -211
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +75 -72
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +20 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +20 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +94 -25
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +40 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +253 -148
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -55
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +180 -297
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +58 -103
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +163 -174
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +86 -59
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +288 -248
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +47 -222
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +39 -48
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +106 -32
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +42 -73
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +359 -47
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1557 -116
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +198 -28
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +45 -42
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -136
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +100 -96
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +892 -55
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +76 -81
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +12 -16
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +33 -20
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +19 -32
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +17 -22
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +16 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +40 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +566 -54
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +657 -100
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +65 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +34 -34
- 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 +47 -4
- 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 +149 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +76 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/distribution/Distribution.sol +144 -146
- package/contracts/distribution/DistributionService.sol +69 -118
- package/contracts/distribution/IDistributionComponent.sol +20 -43
- package/contracts/distribution/IDistributionService.sol +7 -9
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +21 -12
- package/contracts/instance/IInstanceService.sol +44 -25
- package/contracts/instance/Instance.sol +110 -86
- package/contracts/instance/InstanceAdmin.sol +194 -282
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +84 -47
- package/contracts/instance/InstanceService.sol +253 -108
- package/contracts/instance/InstanceStore.sol +131 -66
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- package/contracts/instance/module/IAccess.sol +2 -0
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +15 -4
- package/contracts/instance/module/IPolicy.sol +8 -2
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +157 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +86 -174
- package/contracts/pool/IBundleService.sol +4 -16
- package/contracts/pool/IPoolComponent.sol +4 -66
- package/contracts/pool/IPoolService.sol +45 -9
- package/contracts/pool/Pool.sol +150 -141
- package/contracts/pool/PoolService.sol +191 -144
- package/contracts/product/ApplicationService.sol +109 -42
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +18 -19
- package/contracts/product/IApplicationService.sol +1 -1
- package/contracts/product/IClaimService.sol +7 -1
- package/contracts/product/IPolicyService.sol +6 -8
- package/contracts/product/IPricingService.sol +3 -1
- package/contracts/product/IProductComponent.sol +9 -11
- package/contracts/product/IProductService.sol +1 -8
- package/contracts/product/PolicyService.sol +225 -128
- package/contracts/product/PricingService.sol +72 -48
- package/contracts/product/Product.sol +118 -105
- package/contracts/product/ProductService.sol +26 -114
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +40 -18
- package/contracts/registry/IRegistryService.sol +15 -5
- package/contracts/registry/Registry.sol +221 -110
- package/contracts/registry/RegistryAdmin.sol +299 -77
- package/contracts/registry/RegistryService.sol +48 -14
- package/contracts/registry/RegistryServiceManager.sol +2 -9
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +487 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -64
- package/contracts/shared/Component.sol +139 -129
- package/contracts/shared/ComponentService.sol +527 -87
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IComponent.sol +17 -37
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +6 -1
- package/contracts/shared/IService.sol +8 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +151 -0
- package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +3 -13
- package/contracts/shared/PolicyHolder.sol +21 -13
- package/contracts/shared/ProxyManager.sol +2 -3
- package/contracts/shared/Registerable.sol +2 -2
- package/contracts/shared/Service.sol +32 -21
- package/contracts/shared/TokenHandler.sol +24 -1
- package/contracts/staking/IStaking.sol +167 -0
- package/contracts/staking/IStakingService.sol +105 -47
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +511 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +53 -0
- package/contracts/staking/StakingReader.sol +186 -0
- package/contracts/staking/StakingService.sol +286 -44
- package/contracts/staking/StakingServiceManager.sol +7 -3
- package/contracts/staking/StakingStore.sol +615 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +20 -1
- package/contracts/type/Blocknumber.sol +20 -3
- package/contracts/type/Fee.sol +17 -16
- package/contracts/type/NftId.sol +14 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +172 -63
- package/contracts/type/Referral.sol +1 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +104 -69
- package/contracts/type/Seconds.sol +27 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +27 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +6 -2
- package/contracts/type/UFixed.sol +6 -0
- package/contracts/type/Version.sol +4 -2
- package/package.json +8 -5
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -188
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1018
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1765
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1594
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -320
- package/contracts/instance/base/Lifecycle.sol +0 -121
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/registry/ReleaseManager.sol +0 -465
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -469
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -125
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -17
@@ -1,6 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
4
5
|
import {Seconds} from "../type/Seconds.sol";
|
5
6
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
6
7
|
import {ObjectType} from "../type/ObjectType.sol";
|
@@ -9,7 +10,6 @@ import {Fee} from "../type/Fee.sol";
|
|
9
10
|
import {ReferralId} from "../type/Referral.sol";
|
10
11
|
import {RiskId} from "../type/RiskId.sol";
|
11
12
|
import {PRODUCT, DISTRIBUTION, PRICE} from "../type/ObjectType.sol";
|
12
|
-
import {Amount} from "../type/Amount.sol";
|
13
13
|
import {IRegistry} from "../registry/IRegistry.sol";
|
14
14
|
|
15
15
|
import {IProductComponent} from "./IProductComponent.sol";
|
@@ -19,17 +19,16 @@ import {InstanceReader} from "../instance/InstanceReader.sol";
|
|
19
19
|
import {IComponents} from "../instance/module/IComponents.sol";
|
20
20
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
21
21
|
import {IBundle} from "../instance/module/IBundle.sol";
|
22
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
23
22
|
import {IDistribution} from "../instance/module/IDistribution.sol";
|
24
23
|
|
25
|
-
import {
|
24
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
26
25
|
|
27
26
|
import {IPricingService} from "./IPricingService.sol";
|
28
27
|
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
29
28
|
|
30
29
|
|
31
30
|
contract PricingService is
|
32
|
-
|
31
|
+
ComponentVerifyingService,
|
33
32
|
IPricingService
|
34
33
|
{
|
35
34
|
using UFixedLib for UFixed;
|
@@ -57,11 +56,6 @@ contract PricingService is
|
|
57
56
|
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
58
57
|
}
|
59
58
|
|
60
|
-
|
61
|
-
function getDomain() public pure override returns(ObjectType) {
|
62
|
-
return PRICE();
|
63
|
-
}
|
64
|
-
|
65
59
|
/// @dev calculates the premium amount for the specified attributes
|
66
60
|
/// also returns the various fee components involved with creating a policy
|
67
61
|
function calculatePremium(
|
@@ -86,14 +80,14 @@ contract PricingService is
|
|
86
80
|
{
|
87
81
|
// verify product
|
88
82
|
(
|
89
|
-
IRegistry.ObjectInfo memory
|
83
|
+
IRegistry.ObjectInfo memory registryInfo,
|
90
84
|
IInstance instance
|
91
|
-
) =
|
85
|
+
) = _getAndVerifyComponentInfo(productNftId, PRODUCT(), false);
|
92
86
|
|
93
87
|
reader = instance.getInstanceReader();
|
94
88
|
|
95
89
|
// calculate net premium
|
96
|
-
netPremiumAmount = IProductComponent(
|
90
|
+
netPremiumAmount = IProductComponent(registryInfo.objectAddress).calculateNetPremium(
|
97
91
|
sumInsuredAmount,
|
98
92
|
riskId,
|
99
93
|
lifetime,
|
@@ -103,46 +97,45 @@ contract PricingService is
|
|
103
97
|
|
104
98
|
{
|
105
99
|
// get configurations for all involed objects
|
106
|
-
|
107
|
-
|
108
|
-
bytes memory componentData = reader.getComponentInfo(productSetup.poolNftId).data;
|
109
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentData, (IComponents.PoolInfo));
|
100
|
+
IComponents.ProductInfo memory productInfo = reader.getProductInfo(productNftId);
|
110
101
|
|
111
102
|
IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
112
|
-
if(bundleInfo.poolNftId !=
|
113
|
-
revert ErrorIPricingServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId,
|
103
|
+
if(bundleInfo.poolNftId != productInfo.poolNftId) {
|
104
|
+
revert ErrorIPricingServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, productInfo.poolNftId);
|
114
105
|
}
|
115
106
|
|
116
|
-
NftId distributionNftId = productSetup.distributionNftId;
|
117
|
-
ISetup.DistributionSetupInfo memory distSetup = reader.getDistributionSetupInfo(distributionNftId);
|
118
|
-
|
119
107
|
// calculate premium, order is important
|
120
108
|
premium = _getFixedFeeAmounts(
|
121
109
|
netPremiumAmount,
|
122
|
-
|
123
|
-
poolInfo,
|
124
|
-
distSetup,
|
110
|
+
productInfo,
|
125
111
|
bundleInfo
|
126
112
|
);
|
127
113
|
|
128
114
|
premium = _calculateVariableFeeAmounts(
|
129
115
|
premium,
|
130
|
-
|
131
|
-
poolInfo,
|
132
|
-
distSetup,
|
116
|
+
productInfo,
|
133
117
|
bundleInfo
|
134
118
|
);
|
135
119
|
|
136
120
|
premium = _calculateDistributionOwnerFeeAmount(
|
137
121
|
premium,
|
138
|
-
|
122
|
+
productInfo,
|
139
123
|
referralId,
|
140
|
-
distributionNftId,
|
141
124
|
reader
|
142
125
|
);
|
143
126
|
|
127
|
+
premium = _calculateTargetWalletAmounts(premium);
|
128
|
+
|
144
129
|
// sanity check to validate the fee calculation
|
145
|
-
if
|
130
|
+
if(AmountLib.toAmount(premium.premiumAmount) !=
|
131
|
+
premium.productFeeAmount
|
132
|
+
+ premium.distributionFeeAndCommissionAmount
|
133
|
+
+ premium.poolPremiumAndFeeAmount)
|
134
|
+
{
|
135
|
+
revert ErrorPricingServiceTargetWalletAmountsMismatch();
|
136
|
+
}
|
137
|
+
|
138
|
+
if (premium.distributionOwnerFeeFixAmount < productInfo.minDistributionOwnerFee.fixedFee) {
|
146
139
|
revert ErrorIPricingServiceFeeCalculationMismatch(
|
147
140
|
premium.distributionFeeFixAmount,
|
148
141
|
premium.distributionFeeVarAmount,
|
@@ -169,13 +162,11 @@ contract PricingService is
|
|
169
162
|
// internal functions
|
170
163
|
function _getFixedFeeAmounts(
|
171
164
|
Amount netPremiumAmount,
|
172
|
-
|
173
|
-
IComponents.PoolInfo memory poolInfo,
|
174
|
-
ISetup.DistributionSetupInfo memory distInfo,
|
165
|
+
IComponents.ProductInfo memory productInfo,
|
175
166
|
IBundle.BundleInfo memory bundleInfo
|
176
167
|
)
|
177
168
|
internal
|
178
|
-
|
169
|
+
pure
|
179
170
|
returns (
|
180
171
|
IPolicy.Premium memory premium
|
181
172
|
)
|
@@ -188,7 +179,7 @@ contract PricingService is
|
|
188
179
|
premium.productFeeFixAmount = t;
|
189
180
|
premium.fullPremiumAmount += t;
|
190
181
|
|
191
|
-
t =
|
182
|
+
t = productInfo.poolFee.fixedFee;
|
192
183
|
premium.poolFeeFixAmount = t;
|
193
184
|
premium.fullPremiumAmount += t;
|
194
185
|
|
@@ -196,20 +187,18 @@ contract PricingService is
|
|
196
187
|
premium.bundleFeeFixAmount = t;
|
197
188
|
premium.fullPremiumAmount += t;
|
198
189
|
|
199
|
-
t =
|
190
|
+
t = productInfo.distributionFee.fixedFee;
|
200
191
|
premium.distributionFeeFixAmount = t;
|
201
192
|
premium.fullPremiumAmount += t;
|
202
193
|
}
|
203
194
|
|
204
195
|
function _calculateVariableFeeAmounts(
|
205
196
|
IPolicy.Premium memory premium,
|
206
|
-
|
207
|
-
IComponents.PoolInfo memory poolInfo,
|
208
|
-
ISetup.DistributionSetupInfo memory distInfo,
|
197
|
+
IComponents.ProductInfo memory productInfo,
|
209
198
|
IBundle.BundleInfo memory bundleInfo
|
210
199
|
)
|
211
200
|
internal
|
212
|
-
|
201
|
+
pure
|
213
202
|
returns (
|
214
203
|
IPolicy.Premium memory intermadiatePremium
|
215
204
|
)
|
@@ -220,7 +209,7 @@ contract PricingService is
|
|
220
209
|
premium.productFeeVarAmount = t;
|
221
210
|
premium.fullPremiumAmount += t;
|
222
211
|
|
223
|
-
t = (netPremiumAmount *
|
212
|
+
t = (netPremiumAmount * productInfo.poolFee.fractionalFee).toInt();
|
224
213
|
premium.poolFeeVarAmount = t;
|
225
214
|
premium.fullPremiumAmount += t;
|
226
215
|
|
@@ -228,7 +217,7 @@ contract PricingService is
|
|
228
217
|
premium.bundleFeeVarAmount = t;
|
229
218
|
premium.fullPremiumAmount += t;
|
230
219
|
|
231
|
-
t = (netPremiumAmount *
|
220
|
+
t = (netPremiumAmount * productInfo.distributionFee.fractionalFee).toInt();
|
232
221
|
premium.distributionFeeVarAmount = t;
|
233
222
|
premium.fullPremiumAmount += t;
|
234
223
|
|
@@ -237,24 +226,25 @@ contract PricingService is
|
|
237
226
|
|
238
227
|
function _calculateDistributionOwnerFeeAmount(
|
239
228
|
IPolicy.Premium memory premium,
|
240
|
-
|
229
|
+
IComponents.ProductInfo memory productInfo,
|
230
|
+
// ISetup.DistributionSetupInfo memory distInfo,
|
241
231
|
ReferralId referralId,
|
242
|
-
NftId distributionNftId,
|
243
232
|
InstanceReader reader
|
244
233
|
)
|
245
234
|
internal
|
246
235
|
view
|
247
236
|
returns (IPolicy.Premium memory finalPremium)
|
248
237
|
{
|
238
|
+
|
249
239
|
// if the referral is not valid, then the distribution owner gets everything
|
250
|
-
if (! _distributionService.referralIsValid(distributionNftId, referralId)) {
|
240
|
+
if (! _distributionService.referralIsValid(productInfo.distributionNftId, referralId)) {
|
251
241
|
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
252
242
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
253
243
|
premium.premiumAmount = premium.fullPremiumAmount;
|
254
244
|
return premium;
|
255
245
|
}
|
256
246
|
|
257
|
-
Fee memory minDistributionOwnerFee =
|
247
|
+
Fee memory minDistributionOwnerFee = productInfo.minDistributionOwnerFee;
|
258
248
|
|
259
249
|
// if the referral is valid, the the commission and discount are calculated based in the full premium
|
260
250
|
// the remaing amount goes to the distribution owner
|
@@ -266,11 +256,45 @@ contract PricingService is
|
|
266
256
|
uint256 commissionAmount = UFixedLib.toUFixed(premium.netPremiumAmount).mul(distributorTypeInfo.commissionPercentage).toInt();
|
267
257
|
premium.commissionAmount = commissionAmount;
|
268
258
|
premium.discountAmount = UFixedLib.toUFixed(premium.fullPremiumAmount).mul(referralInfo.discountPercentage).toInt();
|
269
|
-
premium.distributionOwnerFeeFixAmount =
|
259
|
+
premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
|
270
260
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount - commissionAmount - premium.discountAmount;
|
271
261
|
premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
|
272
262
|
}
|
273
263
|
|
274
264
|
return premium;
|
275
265
|
}
|
266
|
+
|
267
|
+
|
268
|
+
function _calculateTargetWalletAmounts(
|
269
|
+
IPolicy.Premium memory premium
|
270
|
+
)
|
271
|
+
internal
|
272
|
+
virtual
|
273
|
+
view
|
274
|
+
returns (
|
275
|
+
IPolicy.Premium memory premiumWithTargetWalletAmounts
|
276
|
+
)
|
277
|
+
{
|
278
|
+
// fees for product owner
|
279
|
+
premium.productFeeAmount = AmountLib.toAmount(
|
280
|
+
premium.productFeeFixAmount + premium.productFeeVarAmount);
|
281
|
+
|
282
|
+
// fees for distribution owner + distributor commission
|
283
|
+
premium.distributionFeeAndCommissionAmount = AmountLib.toAmount(
|
284
|
+
premium.distributionFeeFixAmount + premium.distributionOwnerFeeVarAmount
|
285
|
+
+ premium.commissionAmount);
|
286
|
+
|
287
|
+
// net premium + fees for pool owner + bundle owner
|
288
|
+
premium.poolPremiumAndFeeAmount = AmountLib.toAmount(
|
289
|
+
premium.netPremiumAmount
|
290
|
+
+ premium.poolFeeFixAmount + premium.poolFeeVarAmount
|
291
|
+
+ premium.bundleFeeFixAmount + premium.bundleFeeVarAmount);
|
292
|
+
|
293
|
+
premiumWithTargetWalletAmounts = premium;
|
294
|
+
}
|
295
|
+
|
296
|
+
|
297
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
298
|
+
return PRICE();
|
299
|
+
}
|
276
300
|
}
|
@@ -1,14 +1,16 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
6
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
7
|
import {ClaimId} from "../type/ClaimId.sol";
|
8
|
-
import {
|
9
|
-
import {Fee} from "../type/Fee.sol";
|
8
|
+
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
9
|
+
import {Fee, FeeLib} from "../type/Fee.sol";
|
10
10
|
import {IRisk} from "../instance/module/IRisk.sol";
|
11
11
|
import {IApplicationService} from "./IApplicationService.sol";
|
12
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
13
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
12
14
|
import {IPolicyService} from "./IPolicyService.sol";
|
13
15
|
import {IProductService} from "./IProductService.sol";
|
14
16
|
import {IClaimService} from "./IClaimService.sol";
|
@@ -16,7 +18,7 @@ import {IPricingService} from "./IPricingService.sol";
|
|
16
18
|
import {IProductComponent} from "./IProductComponent.sol";
|
17
19
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
18
20
|
import {PayoutId} from "../type/PayoutId.sol";
|
19
|
-
import {PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
21
|
+
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
20
22
|
import {ReferralId} from "../type/Referral.sol";
|
21
23
|
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
22
24
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -27,13 +29,12 @@ import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
27
29
|
|
28
30
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
29
31
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
30
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
31
32
|
import {IComponents} from "../instance/module/IComponents.sol";
|
32
33
|
import {Pool} from "../pool/Pool.sol";
|
33
34
|
import {Distribution} from "../distribution/Distribution.sol";
|
34
35
|
|
35
36
|
abstract contract Product is
|
36
|
-
|
37
|
+
InstanceLinkedComponent,
|
37
38
|
IProductComponent
|
38
39
|
{
|
39
40
|
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.Product")) - 1)) & ~bytes32(uint256(0xff));
|
@@ -45,33 +46,123 @@ abstract contract Product is
|
|
45
46
|
IPolicyService _policyService;
|
46
47
|
IClaimService _claimService;
|
47
48
|
IPricingService _pricingService;
|
48
|
-
|
49
|
-
Distribution _distribution;
|
50
|
-
Fee _initialProductFee;
|
51
|
-
Fee _initialProcessingFee;
|
52
|
-
TokenHandler _tokenHandler;
|
49
|
+
IComponentService _componentService;
|
53
50
|
NftId _poolNftId;
|
54
51
|
NftId _distributionNftId;
|
52
|
+
Pool _pool;
|
53
|
+
Distribution _distribution;
|
55
54
|
}
|
56
55
|
|
57
|
-
|
56
|
+
|
57
|
+
function calculatePremium(
|
58
|
+
Amount sumInsuredAmount,
|
59
|
+
RiskId riskId,
|
60
|
+
Seconds lifetime,
|
61
|
+
bytes memory applicationData,
|
62
|
+
NftId bundleNftId,
|
63
|
+
ReferralId referralId
|
64
|
+
)
|
65
|
+
external
|
66
|
+
view
|
67
|
+
override
|
68
|
+
returns (Amount premiumAmount)
|
69
|
+
{
|
70
|
+
IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
|
71
|
+
getNftId(),
|
72
|
+
riskId,
|
73
|
+
sumInsuredAmount,
|
74
|
+
lifetime,
|
75
|
+
applicationData,
|
76
|
+
bundleNftId,
|
77
|
+
referralId
|
78
|
+
);
|
79
|
+
|
80
|
+
return AmountLib.toAmount(premium.premiumAmount);
|
81
|
+
}
|
82
|
+
|
83
|
+
function calculateNetPremium(
|
84
|
+
Amount sumInsuredAmount,
|
85
|
+
RiskId riskId,
|
86
|
+
Seconds lifetime,
|
87
|
+
bytes memory applicationData
|
88
|
+
)
|
89
|
+
external
|
90
|
+
view
|
91
|
+
virtual override
|
92
|
+
returns (Amount netPremiumAmount)
|
93
|
+
{
|
94
|
+
// default 10% of sum insured
|
95
|
+
return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
|
96
|
+
}
|
97
|
+
|
98
|
+
|
99
|
+
function register()
|
100
|
+
external
|
101
|
+
virtual
|
102
|
+
onlyOwner()
|
103
|
+
{
|
104
|
+
_getProductStorage()._componentService.registerProduct();
|
105
|
+
}
|
106
|
+
|
107
|
+
|
108
|
+
function getInitialProductInfo()
|
109
|
+
public
|
110
|
+
virtual
|
111
|
+
view
|
112
|
+
returns (IComponents.ProductInfo memory poolInfo)
|
113
|
+
{
|
114
|
+
ProductStorage storage $ = _getProductStorage();
|
115
|
+
|
116
|
+
return IComponents.ProductInfo({
|
117
|
+
distributionNftId: $._distributionNftId,
|
118
|
+
poolNftId: $._poolNftId,
|
119
|
+
productFee: FeeLib.zero(),
|
120
|
+
processingFee: FeeLib.zero(),
|
121
|
+
distributionFee: FeeLib.zero(),
|
122
|
+
minDistributionOwnerFee: FeeLib.zero(),
|
123
|
+
poolFee: FeeLib.zero(),
|
124
|
+
stakingFee: FeeLib.zero(),
|
125
|
+
performanceFee: FeeLib.zero()
|
126
|
+
});
|
127
|
+
}
|
128
|
+
|
129
|
+
function getPoolNftId() external view override returns (NftId poolNftId) {
|
130
|
+
return getRegistry().getNftId(address(_getProductStorage()._pool));
|
131
|
+
}
|
132
|
+
|
133
|
+
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
134
|
+
return getRegistry().getNftId(address(_getProductStorage()._distribution));
|
135
|
+
}
|
136
|
+
|
137
|
+
|
138
|
+
function _initializeProduct(
|
58
139
|
address registry,
|
59
140
|
NftId instanceNftId,
|
141
|
+
IAuthorization authorization,
|
142
|
+
address initialOwner,
|
60
143
|
string memory name,
|
61
144
|
address token,
|
62
145
|
bool isInterceptor,
|
63
146
|
address pool,
|
64
147
|
address distribution,
|
65
|
-
|
66
|
-
|
67
|
-
address initialOwner,
|
68
|
-
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
148
|
+
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
149
|
+
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
69
150
|
)
|
70
|
-
|
151
|
+
internal
|
71
152
|
virtual
|
72
153
|
onlyInitializing()
|
73
154
|
{
|
74
|
-
|
155
|
+
_initializeInstanceLinkedComponent(
|
156
|
+
registry,
|
157
|
+
instanceNftId,
|
158
|
+
name,
|
159
|
+
token,
|
160
|
+
PRODUCT(),
|
161
|
+
authorization,
|
162
|
+
isInterceptor,
|
163
|
+
initialOwner,
|
164
|
+
registryData,
|
165
|
+
componentData);
|
75
166
|
|
76
167
|
ProductStorage storage $ = _getProductStorage();
|
77
168
|
// TODO add validation
|
@@ -81,30 +172,27 @@ abstract contract Product is
|
|
81
172
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
82
173
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
83
174
|
$._pricingService = IPricingService(_getServiceAddress(PRICE()));
|
175
|
+
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
84
176
|
$._pool = Pool(pool);
|
85
177
|
$._distribution = Distribution(distribution);
|
86
|
-
$._initialProductFee = productFee;
|
87
|
-
$._initialProcessingFee = processingFee;
|
88
|
-
$._tokenHandler = new TokenHandler(token);
|
89
178
|
$._poolNftId = getRegistry().getNftId(pool);
|
90
179
|
$._distributionNftId = getRegistry().getNftId(distribution);
|
91
180
|
|
92
181
|
registerInterface(type(IProductComponent).interfaceId);
|
93
182
|
}
|
94
183
|
|
95
|
-
|
96
|
-
function
|
184
|
+
|
185
|
+
function _setFees(
|
97
186
|
Fee memory productFee,
|
98
187
|
Fee memory processingFee
|
99
188
|
)
|
100
|
-
|
101
|
-
|
102
|
-
restricted()
|
103
|
-
override
|
189
|
+
internal
|
190
|
+
virtual
|
104
191
|
{
|
105
|
-
|
192
|
+
_getProductStorage()._componentService.setProductFees(productFee, processingFee);
|
106
193
|
}
|
107
194
|
|
195
|
+
|
108
196
|
function _createRisk(
|
109
197
|
RiskId id,
|
110
198
|
bytes memory data
|
@@ -135,10 +223,12 @@ abstract contract Product is
|
|
135
223
|
);
|
136
224
|
}
|
137
225
|
|
226
|
+
|
138
227
|
function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
|
139
228
|
return getInstance().getInstanceReader().getRiskInfo(id);
|
140
229
|
}
|
141
230
|
|
231
|
+
|
142
232
|
function _createApplication(
|
143
233
|
address applicationOwner,
|
144
234
|
RiskId riskId,
|
@@ -286,87 +376,10 @@ abstract contract Product is
|
|
286
376
|
payoutId);
|
287
377
|
}
|
288
378
|
|
289
|
-
function calculatePremium(
|
290
|
-
Amount sumInsuredAmount,
|
291
|
-
RiskId riskId,
|
292
|
-
Seconds lifetime,
|
293
|
-
bytes memory applicationData,
|
294
|
-
NftId bundleNftId,
|
295
|
-
ReferralId referralId
|
296
|
-
)
|
297
|
-
external
|
298
|
-
view
|
299
|
-
override
|
300
|
-
returns (Amount premiumAmount)
|
301
|
-
{
|
302
|
-
IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
|
303
|
-
getNftId(),
|
304
|
-
riskId,
|
305
|
-
sumInsuredAmount,
|
306
|
-
lifetime,
|
307
|
-
applicationData,
|
308
|
-
bundleNftId,
|
309
|
-
referralId
|
310
|
-
);
|
311
|
-
|
312
|
-
return AmountLib.toAmount(premium.premiumAmount);
|
313
|
-
}
|
314
|
-
|
315
|
-
function calculateNetPremium(
|
316
|
-
Amount sumInsuredAmount,
|
317
|
-
RiskId riskId,
|
318
|
-
Seconds lifetime,
|
319
|
-
bytes memory applicationData
|
320
|
-
)
|
321
|
-
external
|
322
|
-
view
|
323
|
-
virtual override
|
324
|
-
returns (Amount netPremiumAmount)
|
325
|
-
{
|
326
|
-
// default 10% of sum insured
|
327
|
-
return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
|
328
|
-
}
|
329
|
-
|
330
379
|
function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
|
331
380
|
return RiskIdLib.toRiskId(riskName);
|
332
381
|
}
|
333
382
|
|
334
|
-
function getPoolNftId() external view override returns (NftId poolNftId) {
|
335
|
-
return getRegistry().getNftId(address(_getProductStorage()._pool));
|
336
|
-
}
|
337
|
-
|
338
|
-
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
339
|
-
return getRegistry().getNftId(address(_getProductStorage()._distribution));
|
340
|
-
}
|
341
|
-
|
342
|
-
function getSetupInfo() public view returns (ISetup.ProductSetupInfo memory setupInfo) {
|
343
|
-
InstanceReader reader = getInstance().getInstanceReader();
|
344
|
-
setupInfo = reader.getProductSetupInfo(getNftId());
|
345
|
-
|
346
|
-
// fallback to initial setup info (wallet is always != address(0))
|
347
|
-
if(setupInfo.wallet == address(0)) {
|
348
|
-
setupInfo = _getInitialSetupInfo();
|
349
|
-
}
|
350
|
-
}
|
351
|
-
|
352
|
-
function _getInitialSetupInfo() internal view returns (ISetup.ProductSetupInfo memory setupInfo) {
|
353
|
-
ProductStorage storage $ = _getProductStorage();
|
354
|
-
|
355
|
-
ISetup.DistributionSetupInfo memory distributionSetupInfo = $._distribution.getSetupInfo();
|
356
|
-
IComponents.PoolInfo memory poolInfo = $._pool.getPoolInfo();
|
357
|
-
|
358
|
-
return ISetup.ProductSetupInfo(
|
359
|
-
getToken(),
|
360
|
-
$._tokenHandler,
|
361
|
-
$._distributionNftId,
|
362
|
-
$._poolNftId,
|
363
|
-
$._initialProductFee,
|
364
|
-
$._initialProcessingFee,
|
365
|
-
false,
|
366
|
-
getWallet()
|
367
|
-
);
|
368
|
-
}
|
369
|
-
|
370
383
|
function _getProductStorage() private pure returns (ProductStorage storage $) {
|
371
384
|
assembly {
|
372
385
|
$.slot := PRODUCT_STORAGE_LOCATION_V1
|