@etherisc/gif-next 0.0.2-c00cf5d-513 → 0.0.2-c0457ac-280
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/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +198 -177
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +130 -335
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +67 -96
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +83 -108
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +35 -48
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +32 -101
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +65 -66
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +163 -10
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +81 -93
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +56 -40
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +84 -44
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +458 -331
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +268 -46
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +74 -43
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1095 -344
- 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/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +2 -71
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -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 +1146 -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/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +91 -264
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +56 -69
- 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 +145 -86
- 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 +242 -103
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +180 -376
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +42 -83
- 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 +56 -45
- 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 +64 -61
- 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 +241 -107
- 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 +54 -99
- 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 +81 -54
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +337 -157
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +47 -230
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +34 -47
- 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 +65 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +153 -1
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +294 -15
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1712 -103
- 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/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +321 -161
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -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/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +1 -1
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +42 -10
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +1 -1
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +42 -10
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +1 -1
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +52 -20
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +1 -1
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +52 -20
- 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 +916 -55
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -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/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +1 -1
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +1 -1
- 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 +705 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +1 -11
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- 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 +1036 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.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/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 +2261 -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 +2 -2
- 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 +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 +96 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- 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 +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +114 -4
- 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/UFixedLib.dbg.json +1 -1
- 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 +2 -2
- package/contracts/distribution/Distribution.sol +29 -53
- package/contracts/distribution/DistributionService.sol +61 -115
- package/contracts/distribution/IDistributionComponent.sol +5 -10
- package/contracts/distribution/IDistributionService.sol +2 -8
- package/contracts/instance/IInstance.sol +15 -7
- package/contracts/instance/IInstanceService.sol +35 -10
- package/contracts/instance/Instance.sol +63 -34
- package/contracts/instance/InstanceAdmin.sol +3 -2
- package/contracts/instance/InstanceAuthorizationsLib.sol +84 -27
- package/contracts/instance/InstanceReader.sol +64 -40
- package/contracts/instance/InstanceService.sol +185 -45
- package/contracts/instance/InstanceStore.sol +122 -64
- 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/ObjectManager.sol +1 -3
- 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/IOracle.sol +20 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +145 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BundleService.sol +79 -167
- package/contracts/pool/IBundleService.sol +4 -16
- package/contracts/pool/IPoolComponent.sol +4 -6
- package/contracts/pool/IPoolService.sol +45 -9
- package/contracts/pool/Pool.sol +39 -42
- package/contracts/pool/PoolService.sol +190 -142
- package/contracts/product/ApplicationService.sol +109 -42
- 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 +7 -6
- 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 +47 -49
- package/contracts/product/ProductService.sol +26 -114
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +15 -4
- package/contracts/registry/IRegistryService.sol +10 -0
- package/contracts/registry/IServiceAuthorization.sol +35 -0
- package/contracts/registry/Registry.sol +164 -47
- package/contracts/registry/RegistryAdmin.sol +264 -72
- package/contracts/registry/RegistryService.sol +48 -14
- package/contracts/registry/RegistryServiceManager.sol +2 -9
- package/contracts/registry/ReleaseManager.sol +242 -177
- package/contracts/registry/ServiceAuthorization.sol +86 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -64
- package/contracts/shared/AccessAdmin.sol +759 -0
- package/contracts/shared/AccessManagerCustom.sol +6 -1
- package/contracts/shared/AccessManagerExtended.sol +19 -7
- package/contracts/shared/Component.sol +139 -129
- package/contracts/shared/ComponentService.sol +563 -88
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IAccessAdmin.sol +168 -0
- package/contracts/shared/IComponent.sol +17 -37
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +6 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- 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 +144 -0
- package/contracts/{instance/base → shared}/KeyValueStore.sol +30 -72
- package/contracts/{instance/base → shared}/Lifecycle.sol +12 -3
- package/contracts/shared/NftIdSetManager.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 +168 -0
- package/contracts/staking/IStakingService.sol +98 -47
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +513 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +286 -44
- package/contracts/staking/StakingServiceManager.sol +7 -3
- package/contracts/staking/StakingStore.sol +613 -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 +142 -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 +82 -20
- 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/Version.sol +1 -1
- package/package.json +3 -3
- 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/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/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
@@ -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,15 @@
|
|
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 {IComponentService} from "../shared/IComponentService.sol";
|
12
13
|
import {IPolicyService} from "./IPolicyService.sol";
|
13
14
|
import {IProductService} from "./IProductService.sol";
|
14
15
|
import {IClaimService} from "./IClaimService.sol";
|
@@ -16,7 +17,7 @@ import {IPricingService} from "./IPricingService.sol";
|
|
16
17
|
import {IProductComponent} from "./IProductComponent.sol";
|
17
18
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
18
19
|
import {PayoutId} from "../type/PayoutId.sol";
|
19
|
-
import {PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
20
|
+
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
20
21
|
import {ReferralId} from "../type/Referral.sol";
|
21
22
|
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
22
23
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -27,13 +28,12 @@ import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
27
28
|
|
28
29
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
29
30
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
30
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
31
31
|
import {IComponents} from "../instance/module/IComponents.sol";
|
32
32
|
import {Pool} from "../pool/Pool.sol";
|
33
33
|
import {Distribution} from "../distribution/Distribution.sol";
|
34
34
|
|
35
35
|
abstract contract Product is
|
36
|
-
|
36
|
+
InstanceLinkedComponent,
|
37
37
|
IProductComponent
|
38
38
|
{
|
39
39
|
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.Product")) - 1)) & ~bytes32(uint256(0xff));
|
@@ -45,33 +45,30 @@ abstract contract Product is
|
|
45
45
|
IPolicyService _policyService;
|
46
46
|
IClaimService _claimService;
|
47
47
|
IPricingService _pricingService;
|
48
|
-
|
49
|
-
Distribution _distribution;
|
50
|
-
Fee _initialProductFee;
|
51
|
-
Fee _initialProcessingFee;
|
52
|
-
TokenHandler _tokenHandler;
|
48
|
+
IComponentService _componentService;
|
53
49
|
NftId _poolNftId;
|
54
50
|
NftId _distributionNftId;
|
51
|
+
Pool _pool;
|
52
|
+
Distribution _distribution;
|
55
53
|
}
|
56
54
|
|
57
55
|
function initializeProduct(
|
58
56
|
address registry,
|
59
57
|
NftId instanceNftId,
|
58
|
+
address initialOwner,
|
60
59
|
string memory name,
|
61
60
|
address token,
|
62
61
|
bool isInterceptor,
|
63
62
|
address pool,
|
64
63
|
address distribution,
|
65
|
-
|
66
|
-
|
67
|
-
address initialOwner,
|
68
|
-
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
64
|
+
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
65
|
+
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
69
66
|
)
|
70
67
|
public
|
71
68
|
virtual
|
72
69
|
onlyInitializing()
|
73
70
|
{
|
74
|
-
|
71
|
+
initializeInstanceLinkedComponent(registry, instanceNftId, name, token, PRODUCT(), isInterceptor, initialOwner, registryData, componentData);
|
75
72
|
|
76
73
|
ProductStorage storage $ = _getProductStorage();
|
77
74
|
// TODO add validation
|
@@ -81,18 +78,25 @@ abstract contract Product is
|
|
81
78
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
82
79
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
83
80
|
$._pricingService = IPricingService(_getServiceAddress(PRICE()));
|
81
|
+
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
84
82
|
$._pool = Pool(pool);
|
85
83
|
$._distribution = Distribution(distribution);
|
86
|
-
$._initialProductFee = productFee;
|
87
|
-
$._initialProcessingFee = processingFee;
|
88
|
-
$._tokenHandler = new TokenHandler(token);
|
89
84
|
$._poolNftId = getRegistry().getNftId(pool);
|
90
85
|
$._distributionNftId = getRegistry().getNftId(distribution);
|
91
86
|
|
92
87
|
registerInterface(type(IProductComponent).interfaceId);
|
93
88
|
}
|
94
89
|
|
95
|
-
|
90
|
+
|
91
|
+
function register()
|
92
|
+
external
|
93
|
+
virtual
|
94
|
+
onlyOwner()
|
95
|
+
{
|
96
|
+
_getProductStorage()._componentService.registerProduct();
|
97
|
+
}
|
98
|
+
|
99
|
+
|
96
100
|
function setFees(
|
97
101
|
Fee memory productFee,
|
98
102
|
Fee memory processingFee
|
@@ -102,7 +106,7 @@ abstract contract Product is
|
|
102
106
|
restricted()
|
103
107
|
override
|
104
108
|
{
|
105
|
-
|
109
|
+
_getProductStorage()._componentService.setProductFees(productFee, processingFee);
|
106
110
|
}
|
107
111
|
|
108
112
|
function _createRisk(
|
@@ -327,8 +331,26 @@ abstract contract Product is
|
|
327
331
|
return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
|
328
332
|
}
|
329
333
|
|
330
|
-
|
331
|
-
|
334
|
+
|
335
|
+
function getInitialProductInfo()
|
336
|
+
public
|
337
|
+
virtual
|
338
|
+
view
|
339
|
+
returns (IComponents.ProductInfo memory poolInfo)
|
340
|
+
{
|
341
|
+
ProductStorage storage $ = _getProductStorage();
|
342
|
+
|
343
|
+
return IComponents.ProductInfo({
|
344
|
+
distributionNftId: $._distributionNftId,
|
345
|
+
poolNftId: $._poolNftId,
|
346
|
+
productFee: FeeLib.zero(),
|
347
|
+
processingFee: FeeLib.zero(),
|
348
|
+
distributionFee: FeeLib.zero(),
|
349
|
+
minDistributionOwnerFee: FeeLib.zero(),
|
350
|
+
poolFee: FeeLib.zero(),
|
351
|
+
stakingFee: FeeLib.zero(),
|
352
|
+
performanceFee: FeeLib.zero()
|
353
|
+
});
|
332
354
|
}
|
333
355
|
|
334
356
|
function getPoolNftId() external view override returns (NftId poolNftId) {
|
@@ -339,32 +361,8 @@ abstract contract Product is
|
|
339
361
|
return getRegistry().getNftId(address(_getProductStorage()._distribution));
|
340
362
|
}
|
341
363
|
|
342
|
-
function
|
343
|
-
|
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
|
-
);
|
364
|
+
function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
|
365
|
+
return RiskIdLib.toRiskId(riskName);
|
368
366
|
}
|
369
367
|
|
370
368
|
function _getProductStorage() private pure returns (ProductStorage storage $) {
|
@@ -1,10 +1,10 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IRegistry} from "../registry/IRegistry.sol";
|
5
5
|
import {IProductComponent} from "./IProductComponent.sol";
|
6
6
|
import {Product} from "./Product.sol";
|
7
|
-
import {
|
7
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
8
8
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
9
9
|
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
10
10
|
import {IInstance} from "../instance/IInstance.sol";
|
@@ -12,8 +12,7 @@ import {IPolicy} from "../instance/module/IPolicy.sol";
|
|
12
12
|
import {IRisk} from "../instance/module/IRisk.sol";
|
13
13
|
import {IBundle} from "../instance/module/IBundle.sol";
|
14
14
|
import {IProductService} from "./IProductService.sol";
|
15
|
-
import {
|
16
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
15
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
17
16
|
|
18
17
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
19
18
|
|
@@ -23,9 +22,9 @@ import {Versionable} from "../shared/Versionable.sol";
|
|
23
22
|
import {Timestamp, zeroTimestamp} from "../type/Timestamp.sol";
|
24
23
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
25
24
|
import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
|
26
|
-
import {ObjectType, PRODUCT, POOL, POLICY} from "../type/ObjectType.sol";
|
25
|
+
import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY} from "../type/ObjectType.sol";
|
27
26
|
import {APPLIED, ACTIVE, KEEP_STATE} from "../type/StateId.sol";
|
28
|
-
import {NftId, NftIdLib
|
27
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
29
28
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
30
29
|
import {ReferralId} from "../type/Referral.sol";
|
31
30
|
import {RiskId} from "../type/RiskId.sol";
|
@@ -35,16 +34,20 @@ import {RoleId, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
|
35
34
|
|
36
35
|
import {IService} from "../shared/IService.sol";
|
37
36
|
import {Service} from "../shared/Service.sol";
|
38
|
-
import {
|
37
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
38
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
39
39
|
import {IProductService} from "./IProductService.sol";
|
40
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
40
41
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
41
42
|
import {IPoolService} from "../pool/PoolService.sol";
|
42
43
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
44
|
+
contract ProductService is
|
45
|
+
ComponentVerifyingService,
|
46
|
+
IProductService
|
47
|
+
{
|
48
|
+
IInstanceService private _instanceService;
|
47
49
|
IPoolService internal _poolService;
|
50
|
+
IRegistryService private _registryService;
|
48
51
|
|
49
52
|
event LogProductServiceSender(address sender);
|
50
53
|
|
@@ -64,112 +67,14 @@ contract ProductService is ComponentService, IProductService {
|
|
64
67
|
|
65
68
|
initializeService(registryAddress, authority, owner);
|
66
69
|
|
70
|
+
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
67
71
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
72
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
68
73
|
|
69
74
|
registerInterface(type(IProductService).interfaceId);
|
70
75
|
}
|
71
76
|
|
72
77
|
|
73
|
-
function register(address productAddress)
|
74
|
-
external
|
75
|
-
returns(NftId productNftId)
|
76
|
-
{
|
77
|
-
(
|
78
|
-
IComponent component,
|
79
|
-
address owner,
|
80
|
-
IInstance instance,
|
81
|
-
NftId instanceNftId
|
82
|
-
) = _checkComponentForRegistration(
|
83
|
-
productAddress,
|
84
|
-
PRODUCT(),
|
85
|
-
PRODUCT_OWNER_ROLE());
|
86
|
-
|
87
|
-
IProductComponent product = IProductComponent(productAddress);
|
88
|
-
IRegistry.ObjectInfo memory productInfo = getRegistryService().registerProduct(product, owner);
|
89
|
-
productNftId = productInfo.nftId;
|
90
|
-
_createProductSetup(
|
91
|
-
instance,
|
92
|
-
product,
|
93
|
-
productNftId);
|
94
|
-
}
|
95
|
-
|
96
|
-
|
97
|
-
function _createProductSetup(
|
98
|
-
IInstance instance,
|
99
|
-
IProductComponent product,
|
100
|
-
NftId productNftId
|
101
|
-
)
|
102
|
-
internal
|
103
|
-
returns (string memory name)
|
104
|
-
{
|
105
|
-
// wire distribution and pool components to product component
|
106
|
-
ISetup.ProductSetupInfo memory setup = product.getSetupInfo();
|
107
|
-
IComponent distribution = IComponent(getRegistry().getObjectInfo(setup.distributionNftId).objectAddress);
|
108
|
-
IComponent pool = IComponent(getRegistry().getObjectInfo(setup.poolNftId).objectAddress);
|
109
|
-
|
110
|
-
distribution.setProductNftId(productNftId);
|
111
|
-
pool.setProductNftId(productNftId);
|
112
|
-
product.setProductNftId(productNftId);
|
113
|
-
product.linkToRegisteredNftId();
|
114
|
-
|
115
|
-
// create product setup in instance
|
116
|
-
instance.getInstanceStore().createProductSetup(productNftId, product.getSetupInfo());
|
117
|
-
|
118
|
-
bytes4[][] memory selectors = new bytes4[][](1);
|
119
|
-
selectors[0] = new bytes4[](1);
|
120
|
-
selectors[0][0] = IProductComponent.setFees.selector;
|
121
|
-
|
122
|
-
RoleId[] memory roles = new RoleId[](1);
|
123
|
-
roles[0] = PRODUCT_OWNER_ROLE();
|
124
|
-
|
125
|
-
// create target for instane access manager
|
126
|
-
getInstanceService().createGifTarget(
|
127
|
-
getRegistry().getNftId(address(instance)),
|
128
|
-
address(product),
|
129
|
-
product.getName(),
|
130
|
-
selectors,
|
131
|
-
roles);
|
132
|
-
}
|
133
|
-
|
134
|
-
function getDomain() public pure override returns(ObjectType) {
|
135
|
-
return PRODUCT();
|
136
|
-
}
|
137
|
-
|
138
|
-
|
139
|
-
function _decodeAndVerifyProductData(bytes memory data)
|
140
|
-
internal
|
141
|
-
returns(string memory name, ISetup.ProductSetupInfo memory setup)
|
142
|
-
{
|
143
|
-
(name, setup) = abi.decode(
|
144
|
-
data,
|
145
|
-
(string, ISetup.ProductSetupInfo)
|
146
|
-
);
|
147
|
-
|
148
|
-
// TODO add checks
|
149
|
-
// if(wallet == address(0)) {
|
150
|
-
// revert WalletIsZero();
|
151
|
-
// }
|
152
|
-
}
|
153
|
-
|
154
|
-
function setFees(
|
155
|
-
Fee memory productFee,
|
156
|
-
Fee memory processingFee
|
157
|
-
)
|
158
|
-
external
|
159
|
-
{
|
160
|
-
// TODO check args
|
161
|
-
|
162
|
-
(NftId productNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(PRODUCT());
|
163
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
164
|
-
|
165
|
-
ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(productNftId);
|
166
|
-
|
167
|
-
productSetupInfo.productFee = productFee;
|
168
|
-
productSetupInfo.processingFee = processingFee;
|
169
|
-
|
170
|
-
instance.getInstanceStore().updateProductSetup(productNftId, productSetupInfo, KEEP_STATE());
|
171
|
-
}
|
172
|
-
|
173
78
|
function createRisk(
|
174
79
|
RiskId riskId,
|
175
80
|
bytes memory data
|
@@ -177,7 +82,7 @@ contract ProductService is ComponentService, IProductService {
|
|
177
82
|
external
|
178
83
|
override
|
179
84
|
{
|
180
|
-
(NftId productNftId,, IInstance instance) =
|
85
|
+
(NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
181
86
|
IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo(productNftId, data);
|
182
87
|
|
183
88
|
instance.getInstanceStore().createRisk(
|
@@ -186,13 +91,14 @@ contract ProductService is ComponentService, IProductService {
|
|
186
91
|
);
|
187
92
|
}
|
188
93
|
|
94
|
+
|
189
95
|
function updateRisk(
|
190
96
|
RiskId riskId,
|
191
97
|
bytes memory data
|
192
98
|
)
|
193
99
|
external
|
194
100
|
{
|
195
|
-
(,, IInstance instance) =
|
101
|
+
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
196
102
|
InstanceReader instanceReader = instance.getInstanceReader();
|
197
103
|
|
198
104
|
IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
|
@@ -200,13 +106,19 @@ contract ProductService is ComponentService, IProductService {
|
|
200
106
|
instance.getInstanceStore().updateRisk(riskId, riskInfo, KEEP_STATE());
|
201
107
|
}
|
202
108
|
|
109
|
+
|
203
110
|
function updateRiskState(
|
204
111
|
RiskId riskId,
|
205
112
|
StateId state
|
206
113
|
)
|
207
114
|
external
|
208
115
|
{
|
209
|
-
(,, IInstance instance) =
|
116
|
+
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
210
117
|
instance.getInstanceStore().updateRiskState(riskId, state);
|
211
118
|
}
|
119
|
+
|
120
|
+
|
121
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
122
|
+
return PRODUCT();
|
123
|
+
}
|
212
124
|
}
|