@etherisc/gif-next 0.0.2-866ef18-420 → 0.0.2-86dae40-160
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 +19 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +85 -90
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +16 -16
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +43 -64
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +182 -74
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +54 -38
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +43 -26
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +71 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +2 -2
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2 -2
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +14 -14
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +80 -122
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +16 -16
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +9 -9
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +72 -194
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +59 -77
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +30 -26
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +27 -61
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +2 -2
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +54 -125
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +16 -16
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +383 -51
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +90 -26
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -83
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +158 -54
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +44 -121
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +226 -90
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +35 -19
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +21 -32
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +9 -17
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +19 -64
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +16 -16
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +74 -58
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +30 -30
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +16 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +188 -108
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -26
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +260 -167
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +42 -26
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +7 -2
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +2 -2
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +19 -64
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +2 -2
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +2 -2
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2 -2
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +2 -2
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +2 -2
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +0 -64
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +327 -62
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +88 -32
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -26
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/{ERC165.sol/ERC165.json → InitializableERC165.sol/InitializableERC165.json} +4 -4
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -64
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
- 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/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +240 -16
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +0 -26
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +40 -113
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +120 -112
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +61 -25
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +22 -22
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +12 -12
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +17 -12
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +7 -2
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +39 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/ProxyManager.sol/ProxyManager.json +3 -3
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/distribution/BasicDistribution.sol +4 -15
- package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
- package/contracts/distribution/Distribution.sol +22 -10
- package/contracts/distribution/DistributionService.sol +47 -27
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +8 -4
- package/contracts/distribution/IDistributionService.sol +10 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +2 -0
- package/contracts/instance/InstanceReader.sol +10 -7
- package/contracts/instance/InstanceService.sol +51 -27
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +2 -1
- package/contracts/instance/base/ObjectLifecycle.sol +2 -3
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +1 -7
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +1 -1
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +15 -6
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +7 -5
- package/contracts/pool/BasicPoolAuthorization.sol +11 -2
- package/contracts/pool/BundleService.sol +174 -34
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +32 -5
- package/contracts/pool/IPoolComponent.sol +6 -0
- package/contracts/pool/IPoolService.sol +14 -17
- package/contracts/pool/Pool.sol +32 -15
- package/contracts/pool/PoolService.sol +151 -84
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +49 -53
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +3 -33
- package/contracts/product/BasicProductAuthorization.sol +3 -0
- package/contracts/product/ClaimService.sol +13 -39
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +1 -0
- package/contracts/product/IPolicyService.sol +23 -17
- package/contracts/product/IProductComponent.sol +1 -0
- package/contracts/product/IProductService.sol +1 -0
- package/contracts/product/PolicyService.sol +242 -131
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +5 -1
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +27 -6
- package/contracts/product/ProductService.sol +7 -32
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/RegistryService.sol +4 -18
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseRegistry.sol +0 -2
- package/contracts/shared/Component.sol +24 -37
- package/contracts/shared/ComponentService.sol +72 -14
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/IComponent.sol +4 -4
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +9 -3
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +21 -0
- package/contracts/shared/NftOwnable.sol +2 -2
- package/contracts/shared/PolicyHolder.sol +2 -5
- package/contracts/shared/Service.sol +3 -4
- package/contracts/shared/TokenHandler.sol +91 -17
- package/contracts/staking/IStaking.sol +1 -1
- package/contracts/staking/StakeManagerLib.sol +0 -25
- package/contracts/staking/Staking.sol +18 -33
- package/contracts/staking/StakingManager.sol +2 -5
- package/contracts/staking/StakingReader.sol +6 -9
- package/contracts/staking/StakingService.sol +8 -12
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +5 -15
- package/contracts/type/Amount.sol +12 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/Seconds.sol +13 -1
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +29 -10
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,45 +1,31 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Pool} from "./Pool.sol";
|
5
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
6
|
-
import {IInstance} from "../instance/IInstance.sol";
|
7
4
|
import {IBundle} from "../instance/module/IBundle.sol";
|
5
|
+
import {IBundleService} from "./IBundleService.sol";
|
8
6
|
import {IComponents} from "../instance/module/IComponents.sol";
|
7
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
8
|
+
import {IInstance} from "../instance/IInstance.sol";
|
9
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
9
10
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
10
|
-
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {
|
11
|
+
import {IPoolService} from "./IPoolService.sol";
|
12
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
13
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
14
|
+
import {IStaking} from "../staking/IStaking.sol";
|
14
15
|
|
15
16
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
16
17
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
17
|
-
import {NftId
|
18
|
-
import {ObjectType, POOL, BUNDLE, COMPONENT, INSTANCE, REGISTRY
|
18
|
+
import {NftId} from "../type/NftId.sol";
|
19
|
+
import {ObjectType, POOL, BUNDLE, COMPONENT, INSTANCE, REGISTRY} from "../type/ObjectType.sol";
|
19
20
|
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
20
21
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
21
|
-
import {
|
22
|
-
import {KEEP_STATE, StateId} from "../type/StateId.sol";
|
22
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
23
23
|
import {Seconds} from "../type/Seconds.sol";
|
24
|
-
import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
25
24
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
26
25
|
import {UFixed} from "../type/UFixed.sol";
|
27
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
28
|
-
|
29
|
-
import {IService} from "../shared/IService.sol";
|
30
|
-
import {Service} from "../shared/Service.sol";
|
31
26
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
32
|
-
import {IBundleService} from "./IBundleService.sol";
|
33
|
-
import {IComponentService} from "../shared/IComponentService.sol";
|
34
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
35
|
-
import {IPoolService} from "./IPoolService.sol";
|
36
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
37
|
-
import {IStaking} from "../staking/IStaking.sol";
|
38
|
-
import {InstanceService} from "../instance/InstanceService.sol";
|
39
27
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
40
28
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
41
|
-
import {IComponent} from "../shared/IComponent.sol";
|
42
|
-
import {IPoolComponent} from "./IPoolComponent.sol";
|
43
29
|
|
44
30
|
string constant POOL_SERVICE_NAME = "PoolService";
|
45
31
|
|
@@ -47,9 +33,6 @@ contract PoolService is
|
|
47
33
|
ComponentVerifyingService,
|
48
34
|
IPoolService
|
49
35
|
{
|
50
|
-
using NftIdLib for NftId;
|
51
|
-
using AmountLib for Amount;
|
52
|
-
|
53
36
|
IBundleService internal _bundleService;
|
54
37
|
IComponentService internal _componentService;
|
55
38
|
IInstanceService private _instanceService;
|
@@ -83,24 +66,20 @@ contract PoolService is
|
|
83
66
|
registerInterface(type(IPoolService).interfaceId);
|
84
67
|
}
|
85
68
|
|
86
|
-
|
87
|
-
function
|
69
|
+
/// @inheritdoc IPoolService
|
70
|
+
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
88
71
|
external
|
89
72
|
virtual
|
90
73
|
{
|
91
|
-
/*
|
92
74
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
93
75
|
InstanceReader instanceReader = instance.getInstanceReader();
|
76
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
94
77
|
|
95
|
-
|
96
|
-
|
97
|
-
Amount previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
|
98
|
-
|
99
|
-
poolInfo.maxCapitalAmount = maxCapitalAmount;
|
78
|
+
Amount previousMaxBalanceAmount = poolInfo.maxBalanceAmount;
|
79
|
+
poolInfo.maxBalanceAmount = maxBalanceAmount;
|
100
80
|
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
101
81
|
|
102
|
-
emit
|
103
|
-
*/
|
82
|
+
emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
|
104
83
|
}
|
105
84
|
|
106
85
|
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
@@ -124,27 +103,7 @@ contract PoolService is
|
|
124
103
|
emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
|
125
104
|
}
|
126
105
|
|
127
|
-
|
128
|
-
function setFees(
|
129
|
-
Fee memory poolFee,
|
130
|
-
Fee memory stakingFee,
|
131
|
-
Fee memory performanceFee
|
132
|
-
)
|
133
|
-
external
|
134
|
-
virtual
|
135
|
-
{
|
136
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
137
|
-
|
138
|
-
IComponents.PoolInfo memory poolInfo = instance.getInstanceReader().getPoolInfo(poolNftId);
|
139
|
-
poolInfo.poolFee = poolFee;
|
140
|
-
poolInfo.stakingFee = stakingFee;
|
141
|
-
poolInfo.performanceFee = performanceFee;
|
142
|
-
|
143
|
-
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
144
|
-
|
145
|
-
// TODO add logging
|
146
|
-
}
|
147
|
-
|
106
|
+
/// @inheritdoc IPoolService
|
148
107
|
function createBundle(
|
149
108
|
address bundleOwner, // initial bundle owner
|
150
109
|
Fee memory fee, // fees deducted from premium that go to bundle owner
|
@@ -154,24 +113,32 @@ contract PoolService is
|
|
154
113
|
)
|
155
114
|
external
|
156
115
|
virtual
|
157
|
-
returns(NftId bundleNftId)
|
116
|
+
returns(NftId bundleNftId, Amount netStakedAmount)
|
158
117
|
{
|
159
118
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
160
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
161
119
|
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
120
|
+
{
|
121
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
122
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
123
|
+
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
124
|
+
if (currentPoolBalance + stakingAmount > poolInfo.maxBalanceAmount) {
|
125
|
+
revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, stakingAmount);
|
126
|
+
}
|
127
|
+
}
|
128
|
+
|
129
|
+
|
130
|
+
Amount stakingFeeAmount;
|
131
|
+
(stakingFeeAmount, netStakedAmount) = FeeLib.calculateFee(
|
132
|
+
_getStakingFee(instance.getInstanceReader(), poolNftId),
|
167
133
|
stakingAmount);
|
168
134
|
|
135
|
+
|
169
136
|
bundleNftId = _bundleService.create(
|
170
137
|
instance,
|
171
138
|
poolNftId,
|
172
139
|
bundleOwner,
|
173
140
|
fee,
|
174
|
-
|
141
|
+
netStakedAmount,
|
175
142
|
lifetime,
|
176
143
|
filter);
|
177
144
|
|
@@ -179,12 +146,12 @@ contract PoolService is
|
|
179
146
|
_componentService.increasePoolBalance(
|
180
147
|
instance.getInstanceStore(),
|
181
148
|
poolNftId,
|
182
|
-
|
149
|
+
netStakedAmount,
|
183
150
|
stakingFeeAmount);
|
184
151
|
|
185
152
|
// pool bookkeeping and collect tokens from bundle owner
|
186
153
|
_collectStakingAmount(
|
187
|
-
|
154
|
+
instance.getInstanceReader(),
|
188
155
|
poolNftId,
|
189
156
|
bundleOwner,
|
190
157
|
stakingAmount);
|
@@ -198,8 +165,8 @@ contract PoolService is
|
|
198
165
|
view
|
199
166
|
returns (Fee memory stakingFee)
|
200
167
|
{
|
201
|
-
NftId productNftId = instanceReader.
|
202
|
-
return instanceReader.
|
168
|
+
NftId productNftId = instanceReader.getComponentInfo(poolNftId).productNftId;
|
169
|
+
return instanceReader.getProductInfo(productNftId).stakingFee;
|
203
170
|
}
|
204
171
|
|
205
172
|
function closeBundle(NftId bundleNftId)
|
@@ -208,16 +175,121 @@ contract PoolService is
|
|
208
175
|
{
|
209
176
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
210
177
|
|
211
|
-
// TODO
|
178
|
+
// TODO get performance fee for pool (#477)
|
212
179
|
|
213
180
|
// releasing collateral in bundle
|
214
|
-
_bundleService.close(instance, bundleNftId);
|
215
|
-
|
216
|
-
// TODO get performance fee for pool, transfer of remaining funds + bundle fees to bundle owner
|
181
|
+
(Amount unstakedAmount, Amount feeAmount) = _bundleService.close(instance, bundleNftId);
|
217
182
|
|
183
|
+
_componentService.decreasePoolBalance(
|
184
|
+
instance.getInstanceStore(),
|
185
|
+
poolNftId,
|
186
|
+
unstakedAmount + feeAmount,
|
187
|
+
AmountLib.zero());
|
188
|
+
|
218
189
|
emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
|
190
|
+
|
191
|
+
if ((unstakedAmount + feeAmount).gtz()){
|
192
|
+
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
|
193
|
+
poolComponentInfo.tokenHandler.distributeTokens(
|
194
|
+
poolComponentInfo.wallet,
|
195
|
+
getRegistry().ownerOf(bundleNftId),
|
196
|
+
unstakedAmount + feeAmount);
|
197
|
+
}
|
198
|
+
}
|
199
|
+
|
200
|
+
/// @inheritdoc IPoolService
|
201
|
+
function stake(NftId bundleNftId, Amount amount)
|
202
|
+
external
|
203
|
+
virtual
|
204
|
+
// TODO: restricted() (once #462 is done)
|
205
|
+
returns(Amount netAmount)
|
206
|
+
{
|
207
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
208
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
209
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
210
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
211
|
+
|
212
|
+
if (bundleInfo.poolNftId != poolNftId) {
|
213
|
+
revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
214
|
+
}
|
215
|
+
|
216
|
+
{
|
217
|
+
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
218
|
+
if (currentPoolBalance + amount > poolInfo.maxBalanceAmount) {
|
219
|
+
revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, amount);
|
220
|
+
}
|
221
|
+
}
|
222
|
+
|
223
|
+
// calculate fees
|
224
|
+
Amount feeAmount;
|
225
|
+
(
|
226
|
+
feeAmount,
|
227
|
+
netAmount
|
228
|
+
) = FeeLib.calculateFee(
|
229
|
+
_getStakingFee(instanceReader, poolNftId),
|
230
|
+
amount);
|
231
|
+
|
232
|
+
// do all the bookkeeping
|
233
|
+
_componentService.increasePoolBalance(
|
234
|
+
instance.getInstanceStore(),
|
235
|
+
poolNftId,
|
236
|
+
netAmount,
|
237
|
+
feeAmount);
|
238
|
+
|
239
|
+
_bundleService.stake(instance, bundleNftId, netAmount);
|
240
|
+
|
241
|
+
// collect tokens from bundle owner
|
242
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
243
|
+
emit LogPoolServiceBundleStaked(instance.getNftId(), poolNftId, bundleNftId, amount, netAmount);
|
244
|
+
_collectStakingAmount(
|
245
|
+
instanceReader,
|
246
|
+
poolNftId,
|
247
|
+
bundleOwner,
|
248
|
+
amount);
|
219
249
|
}
|
220
250
|
|
251
|
+
/// @inheritdoc IPoolService
|
252
|
+
function unstake(NftId bundleNftId, Amount amount)
|
253
|
+
external
|
254
|
+
virtual
|
255
|
+
// TODO: restricted() (once #462 is done)
|
256
|
+
returns(Amount netAmount)
|
257
|
+
{
|
258
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
259
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
260
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
261
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
262
|
+
|
263
|
+
if (bundleInfo.poolNftId != poolNftId) {
|
264
|
+
revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
265
|
+
}
|
266
|
+
|
267
|
+
// call bundle service for bookkeeping and additional checks
|
268
|
+
Amount unstakedAmount = _bundleService.unstake(instance, bundleNftId, amount);
|
269
|
+
|
270
|
+
// Important: from now on work only with unstakedAmount as it is the only reliable amount.
|
271
|
+
// if amount was max, this was set to the available amount
|
272
|
+
|
273
|
+
// TODO: handle performance fees (issue #477)
|
274
|
+
|
275
|
+
// update pool bookkeeping - performance fees stay in the pool, but as fees
|
276
|
+
_componentService.decreasePoolBalance(
|
277
|
+
instanceStore,
|
278
|
+
poolNftId,
|
279
|
+
unstakedAmount,
|
280
|
+
AmountLib.zero());
|
281
|
+
|
282
|
+
IComponents.ComponentInfo memory poolComponentInfo = instanceReader.getComponentInfo(poolNftId);
|
283
|
+
address poolWallet = poolComponentInfo.wallet;
|
284
|
+
// transfer amount to bundle owner
|
285
|
+
address owner = getRegistry().ownerOf(bundleNftId);
|
286
|
+
emit LogPoolServiceBundleUnstaked(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount);
|
287
|
+
poolComponentInfo.tokenHandler.distributeTokens(
|
288
|
+
poolWallet,
|
289
|
+
owner,
|
290
|
+
unstakedAmount);
|
291
|
+
return unstakedAmount;
|
292
|
+
}
|
221
293
|
|
222
294
|
function processSale(
|
223
295
|
NftId bundleNftId,
|
@@ -421,7 +493,6 @@ contract PoolService is
|
|
421
493
|
}
|
422
494
|
|
423
495
|
|
424
|
-
// TODO create (I)TreasuryService that deals with all gif related token transfers
|
425
496
|
/// @dev transfers the specified amount from the bundle owner to the pool's wallet
|
426
497
|
function _collectStakingAmount(
|
427
498
|
InstanceReader instanceReader,
|
@@ -434,15 +505,11 @@ contract PoolService is
|
|
434
505
|
|
435
506
|
// collecting investor token
|
436
507
|
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
437
|
-
TokenHandler tokenHandler = componentInfo.tokenHandler;
|
438
508
|
address poolWallet = componentInfo.wallet;
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
poolWallet,
|
444
|
-
amount);
|
445
|
-
}
|
509
|
+
componentInfo.tokenHandler.collectTokens(
|
510
|
+
bundleOwner,
|
511
|
+
poolWallet,
|
512
|
+
amount);
|
446
513
|
}
|
447
514
|
|
448
515
|
function _getDomain() internal pure override returns(ObjectType) {
|
@@ -1,12 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IVersionable} from "../
|
5
|
-
import {ProxyManager} from "../
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {PoolService} from "./PoolService.sol";
|
7
|
-
import {Registry} from "../registry/Registry.sol";
|
8
|
-
import {RegistryService} from "../registry/RegistryService.sol";
|
9
|
-
import {REGISTRY} from "../type/ObjectType.sol";
|
10
7
|
|
11
8
|
contract PoolServiceManager is ProxyManager {
|
12
9
|
|
@@ -1,51 +1,27 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IApplicationService} from "./IApplicationService.sol";
|
5
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
6
|
+
import {IInstance} from "../instance/IInstance.sol";
|
7
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
8
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
9
|
+
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
10
|
+
import {IPricingService} from "./IPricingService.sol";
|
11
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
12
|
+
|
4
13
|
import {AmountLib} from "../type/Amount.sol";
|
5
14
|
import {Seconds} from "../type/Seconds.sol";
|
6
|
-
import {
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import {ObjectType, DISTRIBUTION, INSTANCE, PRODUCT, POOL, REGISTRY, APPLICATION, POLICY, BUNDLE, PRICE} from "../type/ObjectType.sol";
|
10
|
-
import {APPLIED, REVOKED, ACTIVE, KEEP_STATE} from "../type/StateId.sol";
|
15
|
+
import {zeroTimestamp} from "../type/Timestamp.sol";
|
16
|
+
import {ObjectType, DISTRIBUTION, PRODUCT, REGISTRY, APPLICATION, POLICY, PRICE} from "../type/ObjectType.sol";
|
17
|
+
import {REVOKED} from "../type/StateId.sol";
|
11
18
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
12
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
13
19
|
import {ReferralId} from "../type/Referral.sol";
|
14
20
|
import {RiskId} from "../type/RiskId.sol";
|
15
|
-
import {StateId} from "../type/StateId.sol";
|
16
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
17
21
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
18
|
-
|
19
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
20
|
-
import {IVersionable} from "../shared/IVersionable.sol";
|
21
|
-
import {Versionable} from "../shared/Versionable.sol";
|
22
|
-
import {IService} from "../shared/IService.sol";
|
23
|
-
import {Service} from "../shared/Service.sol";
|
24
|
-
|
25
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
26
|
-
|
27
|
-
import {IProductComponent} from "./IProductComponent.sol";
|
28
|
-
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
29
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
30
|
-
import {Product} from "./Product.sol";
|
31
|
-
|
32
|
-
import {IComponents} from "../instance/module/IComponents.sol";
|
33
|
-
import {IPolicy} from "../instance/module/IPolicy.sol";
|
34
|
-
import {IRisk} from "../instance/module/IRisk.sol";
|
35
|
-
import {IBundle} from "../instance/module/IBundle.sol";
|
36
|
-
import {IProductService} from "./IProductService.sol";
|
37
|
-
|
38
22
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
39
|
-
|
40
|
-
import {IInstance} from "../instance/IInstance.sol";
|
41
23
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
42
24
|
|
43
|
-
import {IApplicationService} from "./IApplicationService.sol";
|
44
|
-
import {IBundleService} from "../pool/IBundleService.sol";
|
45
|
-
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
46
|
-
import {IPoolService} from "../pool/IPoolService.sol";
|
47
|
-
import {IPricingService} from "./IPricingService.sol";
|
48
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
49
25
|
|
50
26
|
|
51
27
|
contract ApplicationService is
|
@@ -152,6 +128,7 @@ contract ApplicationService is
|
|
152
128
|
address applicationOwner,
|
153
129
|
RiskId riskId,
|
154
130
|
Amount sumInsuredAmount,
|
131
|
+
Amount premiumAmount,
|
155
132
|
Seconds lifetime,
|
156
133
|
NftId bundleNftId,
|
157
134
|
ReferralId referralId,
|
@@ -176,13 +153,45 @@ contract ApplicationService is
|
|
176
153
|
applicationNftId = _registerApplication(productNftId, applicationOwner);
|
177
154
|
|
178
155
|
// create policy info for application
|
179
|
-
IPolicy.PolicyInfo memory applicationInfo =
|
156
|
+
IPolicy.PolicyInfo memory applicationInfo = _createApplicationInfo(
|
157
|
+
productNftId,
|
158
|
+
riskId,
|
159
|
+
sumInsuredAmount,
|
160
|
+
premiumAmount,
|
161
|
+
lifetime,
|
162
|
+
bundleNftId,
|
163
|
+
referralId,
|
164
|
+
applicationData);
|
165
|
+
|
166
|
+
// register application with instance
|
167
|
+
instance.getInstanceStore().createApplication(
|
168
|
+
applicationNftId,
|
169
|
+
applicationInfo);
|
170
|
+
|
171
|
+
// TODO: add logging
|
172
|
+
}
|
173
|
+
|
174
|
+
function _createApplicationInfo(
|
175
|
+
NftId productNftId,
|
176
|
+
RiskId riskId,
|
177
|
+
Amount sumInsuredAmount,
|
178
|
+
Amount premiumAmount,
|
179
|
+
Seconds lifetime,
|
180
|
+
NftId bundleNftId,
|
181
|
+
ReferralId referralId,
|
182
|
+
bytes memory applicationData
|
183
|
+
)
|
184
|
+
internal
|
185
|
+
virtual
|
186
|
+
returns (IPolicy.PolicyInfo memory applicationInfo)
|
187
|
+
{
|
188
|
+
return IPolicy.PolicyInfo({
|
180
189
|
productNftId: productNftId,
|
181
190
|
bundleNftId: bundleNftId,
|
182
191
|
referralId: referralId,
|
183
192
|
riskId: riskId,
|
184
193
|
sumInsuredAmount: sumInsuredAmount,
|
185
|
-
premiumAmount:
|
194
|
+
premiumAmount: premiumAmount,
|
186
195
|
premiumPaidAmount: AmountLib.zero(),
|
187
196
|
lifetime: lifetime,
|
188
197
|
applicationData: applicationData,
|
@@ -195,21 +204,8 @@ contract ApplicationService is
|
|
195
204
|
expiredAt: zeroTimestamp(),
|
196
205
|
closedAt: zeroTimestamp()
|
197
206
|
});
|
198
|
-
|
199
|
-
// TODO consider to provide this amount externally
|
200
|
-
// actual calculation is done 2nd time anyway for premium collection
|
201
|
-
// calculate premium amount
|
202
|
-
applicationInfo.premiumAmount = _calculatePremiumAmount(applicationInfo);
|
203
|
-
|
204
|
-
// register application with instance
|
205
|
-
instance.getInstanceStore().createApplication(
|
206
|
-
applicationNftId,
|
207
|
-
applicationInfo);
|
208
|
-
|
209
|
-
// TODO: add logging
|
210
207
|
}
|
211
208
|
|
212
|
-
|
213
209
|
function renew(
|
214
210
|
NftId policyNftId, // policy to be renewd (renewal inherits policy attributes)
|
215
211
|
NftId bundleNftId // will likely need a newer bundle for underwriting
|
@@ -218,7 +214,7 @@ contract ApplicationService is
|
|
218
214
|
virtual override
|
219
215
|
returns (NftId applicationNftId)
|
220
216
|
{
|
221
|
-
|
217
|
+
// TODO implement
|
222
218
|
}
|
223
219
|
|
224
220
|
|
@@ -234,7 +230,7 @@ contract ApplicationService is
|
|
234
230
|
external
|
235
231
|
virtual override
|
236
232
|
{
|
237
|
-
|
233
|
+
// TODO implement
|
238
234
|
}
|
239
235
|
|
240
236
|
function revoke(NftId applicationNftId)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IVersionable} from "../
|
5
|
-
import {ProxyManager} from "../
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {ApplicationService} from "./ApplicationService.sol";
|
7
7
|
|
8
8
|
contract ApplicationServiceManager is ProxyManager {
|
@@ -1,43 +1,15 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
|
6
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
|
-
import {ClaimId} from "../type/ClaimId.sol";
|
8
|
-
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
9
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
10
|
-
import {IRisk} from "../instance/module/IRisk.sol";
|
11
|
-
import {IApplicationService} from "./IApplicationService.sol";
|
4
|
+
import {Fee} from "../type/Fee.sol";
|
12
5
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
13
|
-
import {
|
14
|
-
import {IPolicyService} from "./IPolicyService.sol";
|
15
|
-
import {IProductService} from "./IProductService.sol";
|
16
|
-
import {IClaimService} from "./IClaimService.sol";
|
17
|
-
import {IPricingService} from "./IPricingService.sol";
|
18
|
-
import {IProductComponent} from "./IProductComponent.sol";
|
19
|
-
import {NftId, NftIdLib} from "../type/NftId.sol";
|
6
|
+
import {NftId} from "../type/NftId.sol";
|
20
7
|
import {Product} from "../product/Product.sol";
|
21
|
-
import {PayoutId} from "../type/PayoutId.sol";
|
22
|
-
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
23
|
-
import {ReferralId} from "../type/Referral.sol";
|
24
|
-
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
25
|
-
import {Seconds} from "../type/Seconds.sol";
|
26
|
-
import {StateId} from "../type/StateId.sol";
|
27
|
-
import {Timestamp} from "../type/Timestamp.sol";
|
28
|
-
|
29
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
30
|
-
|
31
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
32
|
-
import {IPolicy} from "../instance/module/IPolicy.sol";
|
33
|
-
import {IComponents} from "../instance/module/IComponents.sol";
|
34
|
-
import {Pool} from "../pool/Pool.sol";
|
35
|
-
import {Distribution} from "../distribution/Distribution.sol";
|
36
8
|
|
37
9
|
abstract contract BasicProduct is
|
38
10
|
Product
|
39
11
|
{
|
40
|
-
|
12
|
+
|
41
13
|
function setFees(
|
42
14
|
Fee memory productFee,
|
43
15
|
Fee memory processingFee
|
@@ -49,8 +21,6 @@ abstract contract BasicProduct is
|
|
49
21
|
{
|
50
22
|
_setFees(productFee, processingFee);
|
51
23
|
}
|
52
|
-
|
53
|
-
|
54
24
|
function _initializeBasicProduct(
|
55
25
|
address registry,
|
56
26
|
NftId instanceNftId,
|
@@ -5,6 +5,7 @@ import {Authorization} from "../authorization/Authorization.sol";
|
|
5
5
|
import {BasicProduct} from "./BasicProduct.sol";
|
6
6
|
import {PRODUCT} from "../type/ObjectType.sol";
|
7
7
|
import {IAccess} from "../authorization/IAccess.sol";
|
8
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
8
9
|
import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
|
9
10
|
import {RoleId} from "../type/RoleId.sol";
|
10
11
|
|
@@ -35,6 +36,8 @@ contract BasicProductAuthorization
|
|
35
36
|
// authorize public role (open access to any account, only allows to lock target)
|
36
37
|
functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
|
37
38
|
_authorize(functions, BasicProduct.setFees.selector, "setFees");
|
39
|
+
|
40
|
+
_authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
|
38
41
|
}
|
39
42
|
}
|
40
43
|
|