@etherisc/gif-next 0.0.2-7e8dbef-751 → 0.0.2-7edde36-170
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 +49 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1489 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -303
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +289 -126
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +77 -57
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +91 -160
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +165 -47
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +64 -84
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -146
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +266 -136
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +215 -108
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -49
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +313 -243
- 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/Cloneable.sol/Cloneable.json +0 -53
- 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 +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/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 +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1126 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +43 -37
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +104 -7
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +40 -168
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +157 -44
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +44 -36
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1395 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +432 -63
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +119 -43
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +218 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +45 -290
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +233 -90
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +45 -429
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +290 -131
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +46 -38
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +67 -49
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +42 -42
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1243 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +122 -69
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +64 -52
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +18 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +29 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +196 -108
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +56 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +32 -79
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +15 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +263 -183
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +59 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +133 -144
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +58 -70
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +35 -231
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +702 -0
- 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 +50 -46
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -183
- 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 +101 -73
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1506 -167
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -25
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- 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 +275 -85
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +72 -60
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
- 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 +166 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -37
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- 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/IService.sol/IService.json +13 -0
- 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/InitializableERC165.sol/InitializableERC165.json +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -128
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
- 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 +13 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +11 -27
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +49 -7
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +52 -109
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +67 -161
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +46 -62
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +92 -73
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +39 -47
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +201 -148
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
- 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 +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/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- 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 +4 -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 +136 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -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 +36 -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 +58 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/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/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +217 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +144 -110
- package/contracts/distribution/DistributionService.sol +80 -42
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +23 -3
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +20 -39
- package/contracts/instance/IInstanceService.sol +34 -23
- package/contracts/instance/Instance.sol +109 -116
- package/contracts/instance/InstanceAdmin.sol +221 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +203 -0
- package/contracts/instance/InstanceReader.sol +48 -16
- package/contracts/instance/InstanceService.sol +189 -84
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +30 -20
- package/contracts/instance/base/BalanceStore.sol +11 -6
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectLifecycle.sol +110 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- 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 +17 -17
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +24 -7
- package/contracts/oracle/Oracle.sol +73 -51
- package/contracts/oracle/OracleService.sol +81 -23
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +207 -65
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +33 -5
- package/contracts/pool/IPoolComponent.sol +6 -60
- package/contracts/pool/IPoolService.sol +36 -26
- package/contracts/pool/Pool.sol +164 -137
- package/contracts/pool/PoolService.sol +168 -112
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +56 -61
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +18 -44
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +7 -0
- package/contracts/product/IPolicyService.sol +25 -30
- package/contracts/product/IPricingService.sol +7 -7
- package/contracts/product/IProductComponent.sol +7 -10
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +277 -178
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +46 -46
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +141 -111
- package/contracts/product/{ProductService.sol → RiskService.sol} +15 -42
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/IRegistry.sol +26 -16
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +85 -85
- package/contracts/registry/RegistryAdmin.sol +292 -155
- package/contracts/registry/RegistryService.sol +9 -23
- package/contracts/registry/RegistryServiceManager.sol +2 -7
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +24 -37
- package/contracts/shared/ComponentService.sol +100 -77
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IComponent.sol +4 -4
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -7
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +8 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +47 -19
- package/contracts/shared/KeyValueStore.sol +6 -2
- package/contracts/shared/Lifecycle.sol +16 -67
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +2 -2
- package/contracts/shared/PolicyHolder.sol +2 -5
- package/contracts/shared/Service.sol +27 -22
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +2 -3
- package/contracts/staking/IStakingService.sol +22 -11
- package/contracts/staking/StakeManagerLib.sol +52 -25
- package/contracts/staking/Staking.sol +79 -133
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingService.sol +66 -65
- package/contracts/staking/StakingServiceManager.sol +2 -3
- package/contracts/staking/StakingStore.sol +93 -60
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +12 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ObjectType.sol +171 -64
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RoleId.sol +103 -75
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +5 -1
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +17 -3
- package/contracts/type/UFixed.sol +34 -9
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +8 -5
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -679
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -599
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -470
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,26 +1,21 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
4
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
5
7
|
import {Product} from "./Product.sol";
|
6
8
|
import {IComponents} from "../instance/module/IComponents.sol";
|
7
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
8
9
|
import {IInstance} from "../instance/IInstance.sol";
|
9
10
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
10
|
-
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
11
|
-
import {IRisk} from "../instance/module/IRisk.sol";
|
12
|
-
import {IBundle} from "../instance/module/IBundle.sol";
|
13
11
|
|
14
12
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
15
13
|
|
16
14
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
17
|
-
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
18
15
|
import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
19
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
20
16
|
import {ObjectType, APPLICATION, COMPONENT, DISTRIBUTION, PRODUCT, POOL, POLICY, BUNDLE, CLAIM, PRICE} from "../type/ObjectType.sol";
|
21
|
-
import {APPLIED, COLLATERALIZED,
|
17
|
+
import {APPLIED, COLLATERALIZED, KEEP_STATE, CLOSED, DECLINED} from "../type/StateId.sol";
|
22
18
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
23
|
-
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
24
19
|
import {ReferralId} from "../type/Referral.sol";
|
25
20
|
import {StateId} from "../type/StateId.sol";
|
26
21
|
import {VersionPart} from "../type/Version.sol";
|
@@ -36,8 +31,6 @@ import {InstanceStore} from "../instance/InstanceStore.sol";
|
|
36
31
|
import {IPolicyService} from "./IPolicyService.sol";
|
37
32
|
import {IPoolService} from "../pool/IPoolService.sol";
|
38
33
|
import {IPricingService} from "./IPricingService.sol";
|
39
|
-
import {IService} from "../shared/IService.sol";
|
40
|
-
import {Service} from "../shared/Service.sol";
|
41
34
|
|
42
35
|
contract PolicyService is
|
43
36
|
ComponentVerifyingService,
|
@@ -54,8 +47,6 @@ contract PolicyService is
|
|
54
47
|
IPoolService internal _poolService;
|
55
48
|
IPricingService internal _pricingService;
|
56
49
|
|
57
|
-
event LogProductServiceSender(address sender);
|
58
|
-
|
59
50
|
function _initialize(
|
60
51
|
address owner,
|
61
52
|
bytes memory data
|
@@ -85,33 +76,42 @@ contract PolicyService is
|
|
85
76
|
}
|
86
77
|
|
87
78
|
|
88
|
-
function getDomain() public pure override returns(ObjectType) {
|
89
|
-
return POLICY();
|
90
|
-
}
|
91
|
-
|
92
|
-
|
93
|
-
function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
|
94
|
-
IRegistry.ObjectInfo memory productInfo;
|
95
|
-
(, productInfo,) = _getAndVerifyActiveComponent(PRODUCT());
|
96
|
-
product = Product(productInfo.objectAddress);
|
97
|
-
}
|
98
|
-
|
99
|
-
|
100
79
|
function decline(
|
101
|
-
NftId policyNftId
|
80
|
+
NftId applicationNftId // = policyNftId
|
102
81
|
)
|
103
82
|
external
|
104
|
-
override
|
83
|
+
virtual override
|
105
84
|
{
|
106
|
-
|
85
|
+
(NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
86
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
87
|
+
|
88
|
+
// check policy is in state applied
|
89
|
+
if (instanceReader.getPolicyState(applicationNftId) != APPLIED()) {
|
90
|
+
revert ErrorPolicyServicePolicyStateNotApplied(applicationNftId);
|
91
|
+
}
|
92
|
+
|
93
|
+
// check policy matches with calling product
|
94
|
+
IPolicy.PolicyInfo memory applicationInfo = instanceReader.getPolicyInfo(applicationNftId);
|
95
|
+
if(applicationInfo.productNftId != productNftId) {
|
96
|
+
revert ErrorPolicyServicePolicyProductMismatch(
|
97
|
+
applicationNftId,
|
98
|
+
applicationInfo.productNftId,
|
99
|
+
productNftId);
|
100
|
+
}
|
101
|
+
|
102
|
+
|
103
|
+
// store updated policy info
|
104
|
+
instance.getInstanceStore().updatePolicyState(
|
105
|
+
applicationNftId,
|
106
|
+
DECLINED());
|
107
|
+
|
108
|
+
emit LogPolicyServicePolicyDeclined(applicationNftId);
|
107
109
|
}
|
108
110
|
|
109
|
-
event LogDebug(uint idx, string message);
|
110
111
|
|
111
|
-
/// @
|
112
|
-
function
|
112
|
+
/// @inheritdoc IPolicyService
|
113
|
+
function createPolicy(
|
113
114
|
NftId applicationNftId, // = policyNftId
|
114
|
-
bool requirePremiumPayment,
|
115
115
|
Timestamp activateAt
|
116
116
|
)
|
117
117
|
external
|
@@ -135,13 +135,8 @@ contract PolicyService is
|
|
135
135
|
productNftId);
|
136
136
|
}
|
137
137
|
|
138
|
-
StateId newPolicyState = COLLATERALIZED();
|
139
|
-
|
140
138
|
// actual collateralizaion
|
141
|
-
(
|
142
|
-
Amount localCollateralAmount,
|
143
|
-
Amount totalCollateralAmount
|
144
|
-
) = _poolService.lockCollateral(
|
139
|
+
_poolService.lockCollateral(
|
145
140
|
instance,
|
146
141
|
address(instanceReader.getComponentInfo(productNftId).token),
|
147
142
|
productNftId,
|
@@ -151,33 +146,49 @@ contract PolicyService is
|
|
151
146
|
|
152
147
|
// optional activation of policy
|
153
148
|
if(activateAt > zeroTimestamp()) {
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
// optional collection of premium
|
160
|
-
if(requirePremiumPayment) {
|
161
|
-
Amount premiumPaidAmount = _calculateAndCollectPremium(
|
162
|
-
instance,
|
163
|
-
applicationNftId,
|
164
|
-
applicationInfo);
|
165
|
-
|
166
|
-
applicationInfo.premiumPaidAmount = premiumPaidAmount;
|
149
|
+
applicationInfo = _activate(
|
150
|
+
applicationNftId,
|
151
|
+
applicationInfo,
|
152
|
+
activateAt);
|
167
153
|
}
|
168
154
|
|
169
|
-
//
|
155
|
+
// update policy and set state to collateralized
|
170
156
|
instance.getInstanceStore().updatePolicy(
|
171
157
|
applicationNftId,
|
172
158
|
applicationInfo,
|
173
|
-
|
159
|
+
COLLATERALIZED());
|
160
|
+
|
161
|
+
// calculate and store premium
|
162
|
+
IPolicy.PremiumInfo memory premium = _pricingService.calculatePremium(
|
163
|
+
productNftId,
|
164
|
+
applicationInfo.riskId,
|
165
|
+
applicationInfo.sumInsuredAmount,
|
166
|
+
applicationInfo.lifetime,
|
167
|
+
applicationInfo.applicationData,
|
168
|
+
applicationInfo.bundleNftId,
|
169
|
+
applicationInfo.referralId);
|
170
|
+
|
171
|
+
instance.getInstanceStore().createPremium(
|
172
|
+
applicationNftId,
|
173
|
+
premium);
|
174
174
|
|
175
|
+
// update referral counter
|
176
|
+
{
|
177
|
+
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
178
|
+
_distributionService.processReferral(
|
179
|
+
productInfo.distributionNftId,
|
180
|
+
applicationInfo.referralId);
|
181
|
+
}
|
182
|
+
|
175
183
|
// TODO add calling pool contract if it needs to validate application
|
176
184
|
|
177
185
|
// TODO: add logging
|
186
|
+
|
187
|
+
// TODO: add callback IPolicyHolder.policyActivated() if applicable
|
178
188
|
}
|
179
189
|
|
180
190
|
|
191
|
+
/// @inheritdoc IPolicyService
|
181
192
|
function collectPremium(
|
182
193
|
NftId policyNftId,
|
183
194
|
Timestamp activateAt
|
@@ -191,8 +202,8 @@ contract PolicyService is
|
|
191
202
|
StateId stateId = instanceReader.getPolicyState(policyNftId);
|
192
203
|
|
193
204
|
// check policy is in state collateralized or active
|
194
|
-
if (!(stateId == COLLATERALIZED()
|
195
|
-
revert
|
205
|
+
if (!(stateId == COLLATERALIZED())) {
|
206
|
+
revert ErrorPolicyServicePolicyStateNotCollateralized(policyNftId);
|
196
207
|
}
|
197
208
|
|
198
209
|
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
@@ -202,50 +213,100 @@ contract PolicyService is
|
|
202
213
|
revert ErrorPolicyServicePremiumAlreadyPaid(policyNftId, policyInfo.premiumPaidAmount);
|
203
214
|
}
|
204
215
|
|
205
|
-
|
206
|
-
|
207
|
-
policyNftId,
|
208
|
-
policyInfo);
|
216
|
+
IPolicy.PremiumInfo memory premium = instanceReader.getPremiumInfo(policyNftId);
|
217
|
+
policyInfo.premiumPaidAmount = premium.premiumAmount;
|
209
218
|
|
210
|
-
|
219
|
+
_processPremium(
|
220
|
+
instance,
|
221
|
+
policyNftId,
|
222
|
+
policyInfo,
|
223
|
+
premium);
|
211
224
|
|
212
|
-
|
213
|
-
|
225
|
+
// optionally activate policy
|
226
|
+
if(activateAt.gtz()) {
|
227
|
+
policyInfo = _activate(policyNftId, policyInfo, activateAt);
|
214
228
|
}
|
215
229
|
|
230
|
+
instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
|
231
|
+
|
216
232
|
// TODO: add logging
|
233
|
+
|
234
|
+
_transferFunds(instanceReader, policyNftId, policyInfo.productNftId, premium);
|
235
|
+
|
236
|
+
// TODO: add callback IPolicyHolder.policyActivated() if applicable
|
217
237
|
}
|
218
238
|
|
239
|
+
/// @inheritdoc IPolicyService
|
219
240
|
function activate(NftId policyNftId, Timestamp activateAt) public override {
|
220
241
|
// check caller is registered product
|
221
242
|
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
222
243
|
InstanceReader instanceReader = instance.getInstanceReader();
|
223
244
|
|
224
245
|
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
246
|
+
policyInfo = _activate(policyNftId, policyInfo, activateAt);
|
225
247
|
|
226
|
-
|
227
|
-
policyInfo.activatedAt.eqz(),
|
228
|
-
"ERROR:PRS-020:ALREADY_ACTIVATED");
|
229
|
-
|
230
|
-
policyInfo.activatedAt = activateAt;
|
231
|
-
policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
|
232
|
-
|
233
|
-
instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, ACTIVE());
|
248
|
+
instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
|
234
249
|
|
235
250
|
// TODO: add logging
|
251
|
+
|
252
|
+
// TODO: add callback IPolicyHolder.policyActivated() if applicable
|
236
253
|
}
|
237
254
|
|
238
255
|
|
256
|
+
/// @inheritdoc IPolicyService
|
239
257
|
function expire(
|
240
|
-
NftId policyNftId
|
258
|
+
NftId policyNftId,
|
259
|
+
Timestamp expireAt
|
241
260
|
)
|
242
261
|
external
|
243
262
|
override
|
244
|
-
|
263
|
+
virtual
|
264
|
+
returns (Timestamp expiredAt)
|
245
265
|
{
|
246
|
-
|
266
|
+
(NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
267
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
268
|
+
|
269
|
+
// check policy matches with calling product
|
270
|
+
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
271
|
+
if(policyInfo.productNftId != productNftId) {
|
272
|
+
revert ErrorPolicyServicePolicyProductMismatch(
|
273
|
+
policyNftId,
|
274
|
+
policyInfo.productNftId,
|
275
|
+
productNftId);
|
276
|
+
}
|
277
|
+
|
278
|
+
// check policy is active
|
279
|
+
StateId policyState = instanceReader.getPolicyState(policyNftId);
|
280
|
+
if (!_policyHasBeenActivated(policyState, policyInfo)) {
|
281
|
+
revert ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
|
282
|
+
}
|
283
|
+
|
284
|
+
// set return value to provided timestamp
|
285
|
+
expiredAt = expireAt;
|
286
|
+
|
287
|
+
// update expiredAt to current block timestamp if not set
|
288
|
+
if (expiredAt.eqz()) {
|
289
|
+
expiredAt = TimestampLib.blockTimestamp();
|
290
|
+
}
|
291
|
+
|
292
|
+
// check expiredAt represents a valid expiry time
|
293
|
+
if (expiredAt >= policyInfo.expiredAt) {
|
294
|
+
revert ErrorPolicyServicePolicyExpirationTooLate(policyNftId, policyInfo.expiredAt, expireAt);
|
295
|
+
}
|
296
|
+
if (expiredAt < TimestampLib.blockTimestamp()) {
|
297
|
+
revert ErrorPolicyServicePolicyExpirationTooEarly(policyNftId, TimestampLib.blockTimestamp(), expireAt);
|
298
|
+
}
|
299
|
+
|
300
|
+
// update policyInfo with new expiredAt timestamp
|
301
|
+
policyInfo.expiredAt = expiredAt;
|
302
|
+
instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
|
303
|
+
|
304
|
+
emit LogPolicyServicePolicyExpirationUpdated(policyNftId, expiredAt);
|
305
|
+
|
306
|
+
// TODO: add callback IPolicyHolder.policyExpired() if applicable
|
247
307
|
}
|
248
308
|
|
309
|
+
|
249
310
|
function close(
|
250
311
|
NftId policyNftId
|
251
312
|
)
|
@@ -255,163 +316,120 @@ contract PolicyService is
|
|
255
316
|
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
256
317
|
InstanceReader instanceReader = instance.getInstanceReader();
|
257
318
|
|
319
|
+
// check that policy has been activated
|
258
320
|
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
259
|
-
|
260
|
-
if (policyInfo
|
261
|
-
revert
|
321
|
+
StateId policyState = instanceReader.getPolicyState(policyNftId);
|
322
|
+
if (!_policyHasBeenActivated(policyState, policyInfo)) {
|
323
|
+
revert ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
|
262
324
|
}
|
263
325
|
|
264
|
-
|
265
|
-
if (
|
266
|
-
revert
|
326
|
+
// check that policy has not already been closed
|
327
|
+
if (policyInfo.closedAt.gtz()) {
|
328
|
+
revert ErrorPolicyServicePolicyAlreadyClosed(policyNftId);
|
267
329
|
}
|
268
330
|
|
269
|
-
|
270
|
-
|
331
|
+
// check that policy does not have any open claims
|
332
|
+
if (policyInfo.openClaimsCount > 0) {
|
333
|
+
revert ErrorPolicyServiceOpenClaims(policyNftId, policyInfo.openClaimsCount);
|
271
334
|
}
|
272
335
|
|
273
336
|
// TODO consider to allow for underpaid premiums (with the effects of reducing max payouts accordingly)
|
337
|
+
// TODO consider to remove requirement for fully paid premiums altogether
|
274
338
|
if (!(policyInfo.premiumAmount == policyInfo.premiumPaidAmount)) {
|
275
339
|
revert ErrorPolicyServicePremiumNotFullyPaid(policyNftId, policyInfo.premiumAmount, policyInfo.premiumPaidAmount);
|
276
340
|
}
|
277
341
|
|
278
|
-
|
279
|
-
revert ErrorIPolicyServiceOpenClaims(policyNftId, policyInfo.openClaimsCount);
|
280
|
-
}
|
281
|
-
|
282
|
-
policyInfo.closedAt = TimestampLib.blockTimestamp();
|
283
|
-
|
342
|
+
// release (remaining) collateral that was blocked by policy
|
284
343
|
_poolService.releaseCollateral(
|
285
344
|
instance,
|
286
345
|
address(instanceReader.getComponentInfo(policyInfo.productNftId).token),
|
287
346
|
policyNftId,
|
288
347
|
policyInfo);
|
289
348
|
|
349
|
+
// TODO consider to also set expiredAt to current block timestamp if that timestamp is still in the futue
|
350
|
+
|
351
|
+
// update policy state to closed
|
352
|
+
policyInfo.closedAt = TimestampLib.blockTimestamp();
|
290
353
|
instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, CLOSED());
|
354
|
+
|
355
|
+
// TODO add logging
|
291
356
|
}
|
292
357
|
|
293
358
|
|
294
|
-
|
359
|
+
/// @dev calculates the premium and updates all counters in the other services
|
360
|
+
function _processPremium(
|
295
361
|
IInstance instance,
|
296
362
|
NftId applicationNftId,
|
297
|
-
IPolicy.PolicyInfo memory applicationInfo
|
363
|
+
IPolicy.PolicyInfo memory applicationInfo,
|
364
|
+
IPolicy.PremiumInfo memory premium
|
298
365
|
)
|
299
366
|
internal
|
300
367
|
virtual
|
301
|
-
returns (
|
302
|
-
Amount premiumPaidAmount
|
303
|
-
)
|
304
368
|
{
|
305
369
|
NftId productNftId = applicationInfo.productNftId;
|
306
|
-
|
307
|
-
// calculate premium details
|
308
|
-
IPolicy.Premium memory premium = _pricingService.calculatePremium(
|
309
|
-
productNftId,
|
310
|
-
applicationInfo.riskId,
|
311
|
-
applicationInfo.sumInsuredAmount,
|
312
|
-
applicationInfo.lifetime,
|
313
|
-
applicationInfo.applicationData,
|
314
|
-
applicationInfo.bundleNftId,
|
315
|
-
applicationInfo.referralId);
|
316
|
-
|
317
|
-
|
318
|
-
// update financials and transfer premium tokens
|
319
|
-
premiumPaidAmount = _processAndCollect(
|
320
|
-
instance,
|
321
|
-
productNftId,
|
322
|
-
applicationNftId,
|
323
|
-
applicationInfo.premiumAmount,
|
324
|
-
applicationInfo.bundleNftId,
|
325
|
-
applicationInfo.referralId,
|
326
|
-
premium);
|
327
|
-
}
|
328
|
-
|
329
|
-
|
330
|
-
function _processAndCollect(
|
331
|
-
IInstance instance,
|
332
|
-
NftId productNftId,
|
333
|
-
NftId policyNftId,
|
334
|
-
Amount premiumExpectedAmount,
|
335
|
-
NftId bundleNftId,
|
336
|
-
ReferralId referralId,
|
337
|
-
IPolicy.Premium memory premium
|
338
|
-
)
|
339
|
-
internal
|
340
|
-
virtual
|
341
|
-
returns (Amount premiumPaidAmount)
|
342
|
-
{
|
343
370
|
InstanceReader instanceReader = instance.getInstanceReader();
|
344
|
-
TokenHandler tokenHandler = instanceReader.getComponentInfo(productNftId).tokenHandler;
|
345
|
-
address policyHolder = getRegistry().ownerOf(policyNftId);
|
346
|
-
premiumPaidAmount = AmountLib.toAmount(premium.premiumAmount);
|
347
371
|
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
372
|
+
// check if premium balance and allowance of policy holder is sufficient
|
373
|
+
{
|
374
|
+
TokenHandler tokenHandler = _getTokenHandler(instanceReader, productNftId);
|
375
|
+
address policyHolder = getRegistry().ownerOf(applicationNftId);
|
376
|
+
|
377
|
+
_checkPremiumBalanceAndAllowance(
|
378
|
+
tokenHandler.getToken(),
|
379
|
+
address(tokenHandler),
|
380
|
+
policyHolder,
|
381
|
+
premium.premiumAmount);
|
382
|
+
}
|
353
383
|
|
354
|
-
|
384
|
+
// update the counters
|
385
|
+
_processSale(
|
355
386
|
instanceReader,
|
356
387
|
instance.getInstanceStore(),
|
357
|
-
tokenHandler,
|
358
|
-
policyHolder,
|
359
388
|
productNftId,
|
360
|
-
bundleNftId,
|
361
|
-
referralId,
|
389
|
+
applicationInfo.bundleNftId,
|
390
|
+
applicationInfo.referralId,
|
362
391
|
premium);
|
363
392
|
}
|
364
393
|
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
Amount premiumExpectedAmount,
|
370
|
-
Amount premiumPaidAmount
|
394
|
+
function _activate(
|
395
|
+
NftId policyNftId,
|
396
|
+
IPolicy.PolicyInfo memory policyInfo,
|
397
|
+
Timestamp activateAt
|
371
398
|
)
|
372
399
|
internal
|
373
400
|
virtual
|
374
|
-
view
|
401
|
+
view
|
402
|
+
returns (IPolicy.PolicyInfo memory)
|
375
403
|
{
|
376
|
-
//
|
377
|
-
|
378
|
-
|
379
|
-
revert ErrorPolicyServicePremiumHigherThanExpected(premiumExpectedAmount, premiumPaidAmount);
|
404
|
+
// fail if policy has already been activated and activateAt is different
|
405
|
+
if(! policyInfo.activatedAt.eqz() && activateAt != policyInfo.activatedAt) {
|
406
|
+
revert ErrorPolicyServicePolicyAlreadyActivated(policyNftId);
|
380
407
|
}
|
381
408
|
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
if (balance < premiumAmount) {
|
387
|
-
revert ErrorPolicyServiceBalanceInsufficient(policyHolder, premiumAmount, balance);
|
409
|
+
// ignore if policy has already been activated and activateAt is the same
|
410
|
+
if (policyInfo.activatedAt == activateAt) {
|
411
|
+
return policyInfo;
|
388
412
|
}
|
389
413
|
|
390
|
-
|
391
|
-
|
392
|
-
}
|
393
|
-
}
|
414
|
+
policyInfo.activatedAt = activateAt;
|
415
|
+
policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
|
394
416
|
|
417
|
+
return policyInfo;
|
418
|
+
}
|
395
419
|
|
396
|
-
|
420
|
+
/// @dev update counters by calling the involved services
|
421
|
+
function _processSale(
|
397
422
|
InstanceReader instanceReader,
|
398
423
|
InstanceStore instanceStore,
|
399
|
-
TokenHandler tokenHandler,
|
400
|
-
address policyHolder,
|
401
424
|
NftId productNftId,
|
402
425
|
NftId bundleNftId,
|
403
426
|
ReferralId referralId,
|
404
|
-
IPolicy.
|
427
|
+
IPolicy.PremiumInfo memory premium
|
405
428
|
)
|
406
429
|
internal
|
407
430
|
virtual
|
408
431
|
{
|
409
|
-
(
|
410
|
-
NftId distributionNftId,
|
411
|
-
address distributionWallet,
|
412
|
-
address poolWallet,
|
413
|
-
address productWallet
|
414
|
-
) = _getDistributionNftAndWallets(
|
432
|
+
(NftId distributionNftId, , , ) = _getDistributionNftAndWallets(
|
415
433
|
instanceReader,
|
416
434
|
productNftId);
|
417
435
|
|
@@ -419,7 +437,7 @@ contract PolicyService is
|
|
419
437
|
_componentService.increaseProductFees(
|
420
438
|
instanceStore,
|
421
439
|
productNftId,
|
422
|
-
|
440
|
+
premium.productFeeVarAmount + premium.productFeeFixAmount);
|
423
441
|
|
424
442
|
// update distribution fees and distributor commission and pool fees
|
425
443
|
_distributionService.processSale(
|
@@ -431,15 +449,84 @@ contract PolicyService is
|
|
431
449
|
_poolService.processSale(
|
432
450
|
bundleNftId,
|
433
451
|
premium);
|
452
|
+
}
|
453
|
+
|
454
|
+
|
455
|
+
/// @dev transfer the premium to the wallets the premium is distributed to
|
456
|
+
function _transferFunds(
|
457
|
+
InstanceReader instanceReader,
|
458
|
+
NftId policyNftId,
|
459
|
+
NftId productNftId,
|
460
|
+
IPolicy.PremiumInfo memory premium
|
461
|
+
)
|
462
|
+
internal
|
463
|
+
virtual
|
464
|
+
{
|
465
|
+
TokenHandler tokenHandler = _getTokenHandler(instanceReader, productNftId);
|
466
|
+
address policyHolder = getRegistry().ownerOf(policyNftId);
|
434
467
|
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
468
|
+
(
|
469
|
+
,
|
470
|
+
address distributionWallet,
|
471
|
+
address poolWallet,
|
472
|
+
address productWallet
|
473
|
+
) = _getDistributionNftAndWallets(
|
474
|
+
instanceReader,
|
475
|
+
productNftId);
|
476
|
+
|
477
|
+
tokenHandler.collectTokensToThreeRecipients(
|
478
|
+
policyHolder,
|
479
|
+
productWallet,
|
480
|
+
premium.productFeeAmount,
|
481
|
+
distributionWallet,
|
482
|
+
premium.distributionFeeAndCommissionAmount,
|
483
|
+
poolWallet,
|
484
|
+
premium.poolPremiumAndFeeAmount);
|
439
485
|
}
|
440
486
|
|
441
487
|
|
442
|
-
|
488
|
+
/// @dev checks that policy has been collateralized and has been activated.
|
489
|
+
/// does not check if policy has been expired or closed.
|
490
|
+
function _policyHasBeenActivated(
|
491
|
+
StateId policyState,
|
492
|
+
IPolicy.PolicyInfo memory policyInfo
|
493
|
+
)
|
494
|
+
internal
|
495
|
+
view
|
496
|
+
returns (bool)
|
497
|
+
{
|
498
|
+
if (policyState != COLLATERALIZED()) { return false; }
|
499
|
+
if (TimestampLib.blockTimestamp() < policyInfo.activatedAt) { return false; }
|
500
|
+
return true;
|
501
|
+
}
|
502
|
+
|
503
|
+
|
504
|
+
/// @dev checks the balance and allowance of the policy holder
|
505
|
+
function _checkPremiumBalanceAndAllowance(
|
506
|
+
IERC20Metadata token,
|
507
|
+
address tokenHandlerAddress,
|
508
|
+
address policyHolder,
|
509
|
+
Amount premiumAmount
|
510
|
+
)
|
511
|
+
internal
|
512
|
+
virtual
|
513
|
+
view
|
514
|
+
{
|
515
|
+
uint256 premium = premiumAmount.toInt();
|
516
|
+
uint256 balance = token.balanceOf(policyHolder);
|
517
|
+
uint256 allowance = token.allowance(policyHolder, tokenHandlerAddress);
|
518
|
+
|
519
|
+
if (balance < premium) {
|
520
|
+
revert ErrorPolicyServiceBalanceInsufficient(policyHolder, premium, balance);
|
521
|
+
}
|
522
|
+
|
523
|
+
if (allowance < premium) {
|
524
|
+
revert ErrorPolicyServiceAllowanceInsufficient(policyHolder, tokenHandlerAddress, premium, allowance);
|
525
|
+
}
|
526
|
+
}
|
527
|
+
|
528
|
+
|
529
|
+
function _getTokenHandler(
|
443
530
|
InstanceReader instanceReader,
|
444
531
|
NftId productNftId
|
445
532
|
)
|
@@ -472,4 +559,16 @@ contract PolicyService is
|
|
472
559
|
poolWallet = instanceReader.getComponentInfo(productInfo.poolNftId).wallet;
|
473
560
|
productWallet = instanceReader.getComponentInfo(productNftId).wallet;
|
474
561
|
}
|
562
|
+
|
563
|
+
|
564
|
+
function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
|
565
|
+
IRegistry.ObjectInfo memory productInfo;
|
566
|
+
(, productInfo,) = _getAndVerifyActiveComponent(PRODUCT());
|
567
|
+
product = Product(productInfo.objectAddress);
|
568
|
+
}
|
569
|
+
|
570
|
+
|
571
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
572
|
+
return POLICY();
|
573
|
+
}
|
475
574
|
}
|
@@ -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 {PolicyService} from "./PolicyService.sol";
|
7
|
-
import {Registry} from "../registry/Registry.sol";
|
8
|
-
import {RegistryService} from "../registry/RegistryService.sol";
|
9
|
-
import {VersionLib} from "../type/Version.sol";
|
10
7
|
|
11
8
|
contract PolicyServiceManager is ProxyManager {
|
12
9
|
|