@etherisc/gif-next 0.0.2-f78c672-338 → 0.0.2-f78f882-351
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 +63 -312
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +111 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +655 -299
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +331 -56
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +501 -231
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +131 -16
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -59
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +322 -67
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -33
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +379 -150
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +160 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -32
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +233 -20
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -110
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +321 -66
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -134
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +321 -66
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +82 -84
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +321 -66
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -73
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -148
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +321 -66
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -190
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +321 -66
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- 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/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +450 -28
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +355 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +488 -85
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +942 -471
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +289 -78
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +595 -532
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +387 -64
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -52
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1316 -2015
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- 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/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +33 -45
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +340 -60
- 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 +19 -31
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -31
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -79
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +321 -66
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -41
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -41
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +346 -87
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +218 -61
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -58
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +321 -66
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -70
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -52
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +138 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +91 -118
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +113 -67
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -52
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -43
- 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/IRegistry.sol/IRegistry.json +33 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.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 +71 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +799 -472
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +96 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +841 -419
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +197 -129
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -31
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +212 -232
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +133 -71
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -31
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +119 -147
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -31
- 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/INftOwnable.sol/INftOwnable.json +19 -0
- 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/IRegisterable.sol/IRegisterable.json +19 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -31
- 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/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -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 +19 -0
- 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 +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1453 -153
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +161 -110
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1565 -239
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +146 -67
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +200 -157
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -44
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1633 -819
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +159 -87
- 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 +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
- 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/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -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/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- 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 +56 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +15 -3
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +361 -371
- package/contracts/authorization/AccessAdminLib.sol +678 -0
- package/contracts/authorization/AccessManagerCloneable.sol +23 -32
- package/contracts/authorization/Authorization.sol +82 -229
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +83 -84
- package/contracts/authorization/IAuthorization.sol +3 -51
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +5 -7
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +12 -17
- package/contracts/distribution/DistributionService.sol +129 -66
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +21 -9
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +6 -10
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -8
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +98 -12
- package/contracts/instance/IInstanceService.sol +54 -7
- package/contracts/instance/Instance.sol +165 -61
- package/contracts/instance/InstanceAdmin.sol +183 -313
- package/contracts/instance/InstanceAuthorizationV3.sol +123 -61
- package/contracts/instance/InstanceReader.sol +350 -394
- package/contracts/instance/InstanceService.sol +283 -173
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +15 -6
- package/contracts/instance/module/IDistribution.sol +17 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +3 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +4 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -18
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +7 -2
- package/contracts/pool/Pool.sol +6 -20
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -184
- package/contracts/product/ApplicationService.sol +65 -12
- package/contracts/product/BasicProduct.sol +2 -5
- package/contracts/product/BasicProductAuthorization.sol +11 -4
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +21 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +40 -77
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +29 -32
- package/contracts/product/Product.sol +40 -18
- package/contracts/product/RiskService.sol +50 -15
- package/contracts/registry/IRegistry.sol +15 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +85 -266
- package/contracts/registry/RegistryAuthorization.sol +337 -0
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +70 -116
- package/contracts/registry/ReleaseRegistry.sol +57 -43
- package/contracts/registry/ServiceAuthorizationV3.sol +128 -33
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +20 -37
- package/contracts/shared/ComponentService.sol +249 -250
- package/contracts/shared/ContractLib.sol +134 -75
- package/contracts/shared/IComponent.sol +1 -4
- package/contracts/shared/IComponentService.sol +21 -22
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +6 -11
- package/contracts/shared/NftOwnable.sol +4 -2
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Registerable.sol +1 -4
- package/contracts/shared/Service.sol +6 -4
- package/contracts/shared/TokenHandler.sol +5 -4
- package/contracts/staking/IStaking.sol +265 -64
- package/contracts/staking/IStakingService.sol +44 -82
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +475 -204
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +49 -158
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +21 -17
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/type/Version.sol +39 -0
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -15,6 +15,8 @@ import {InstanceReader} from "../instance/InstanceReader.sol";
|
|
15
15
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
16
16
|
import {NftId} from "../type/NftId.sol";
|
17
17
|
import {ObjectType, BUNDLE, POOL} from "../type/ObjectType.sol";
|
18
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
19
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
18
20
|
import {UFixed} from "../type/UFixed.sol";
|
19
21
|
|
20
22
|
library PoolLib {
|
@@ -105,7 +107,7 @@ library PoolLib {
|
|
105
107
|
Amount payoutAmount,
|
106
108
|
address payoutBeneficiary
|
107
109
|
)
|
108
|
-
|
110
|
+
public
|
109
111
|
view
|
110
112
|
returns (
|
111
113
|
Amount netPayoutAmount,
|
@@ -127,7 +129,7 @@ library PoolLib {
|
|
127
129
|
// calculate processing fees if applicable
|
128
130
|
IComponents.FeeInfo memory feeInfo = instanceReader.getFeeInfo(productNftId);
|
129
131
|
if(FeeLib.gtz(feeInfo.processingFee)) {
|
130
|
-
|
132
|
+
(processingFeeAmount, netPayoutAmount) = FeeLib.calculateFee(feeInfo.processingFee, payoutAmount);
|
131
133
|
}
|
132
134
|
}
|
133
135
|
}
|
@@ -204,6 +206,32 @@ library PoolLib {
|
|
204
206
|
instance = IInstance(instanceAddress);
|
205
207
|
}
|
206
208
|
|
209
|
+
|
210
|
+
function getAndVerifyActiveComponent(
|
211
|
+
IRegistry registry,
|
212
|
+
address sender,
|
213
|
+
ObjectType expectedComponentType
|
214
|
+
)
|
215
|
+
public
|
216
|
+
view
|
217
|
+
returns (
|
218
|
+
NftId componentNftId,
|
219
|
+
IInstance instance
|
220
|
+
)
|
221
|
+
{
|
222
|
+
(
|
223
|
+
IRegistry.ObjectInfo memory info,
|
224
|
+
address instanceAddress
|
225
|
+
) = ContractLib.getAndVerifyComponent(
|
226
|
+
registry,
|
227
|
+
sender,
|
228
|
+
expectedComponentType,
|
229
|
+
true); // only active components
|
230
|
+
|
231
|
+
componentNftId = info.nftId;
|
232
|
+
instance = IInstance(instanceAddress);
|
233
|
+
}
|
234
|
+
|
207
235
|
function checkNftType(
|
208
236
|
IRegistry registry,
|
209
237
|
NftId nftId,
|
@@ -213,4 +241,101 @@ library PoolLib {
|
|
213
241
|
revert INftOwnable.ErrorNftOwnableInvalidType(nftId, expectedObjectType);
|
214
242
|
}
|
215
243
|
}
|
244
|
+
|
245
|
+
function transferTokenAndNotifyPolicyHolder(
|
246
|
+
IRegistry registry,
|
247
|
+
InstanceReader instanceReader,
|
248
|
+
TokenHandler poolTokenHandler,
|
249
|
+
NftId productNftId,
|
250
|
+
NftId policyNftId,
|
251
|
+
PayoutId payoutId,
|
252
|
+
Amount payoutAmount,
|
253
|
+
address payoutBeneficiary
|
254
|
+
)
|
255
|
+
external
|
256
|
+
returns (
|
257
|
+
Amount netPayoutAmount,
|
258
|
+
Amount processingFeeAmount
|
259
|
+
)
|
260
|
+
{
|
261
|
+
address beneficiary;
|
262
|
+
|
263
|
+
(
|
264
|
+
netPayoutAmount,
|
265
|
+
processingFeeAmount,
|
266
|
+
beneficiary
|
267
|
+
) = calculatePayoutAmounts(
|
268
|
+
registry,
|
269
|
+
instanceReader,
|
270
|
+
productNftId,
|
271
|
+
policyNftId,
|
272
|
+
payoutAmount,
|
273
|
+
payoutBeneficiary);
|
274
|
+
|
275
|
+
// 1st token tx to payout to beneficiary
|
276
|
+
poolTokenHandler.pushToken(
|
277
|
+
beneficiary,
|
278
|
+
netPayoutAmount);
|
279
|
+
|
280
|
+
// 2nd token tx to transfer processing fees to product wallet
|
281
|
+
// if processingFeeAmount > 0
|
282
|
+
if (processingFeeAmount.gtz()) {
|
283
|
+
poolTokenHandler.pushToken(
|
284
|
+
instanceReader.getWallet(productNftId),
|
285
|
+
processingFeeAmount);
|
286
|
+
}
|
287
|
+
|
288
|
+
// callback to policy holder if applicable
|
289
|
+
policyHolderPayoutExecuted(
|
290
|
+
registry,
|
291
|
+
policyNftId,
|
292
|
+
payoutId,
|
293
|
+
beneficiary,
|
294
|
+
netPayoutAmount);
|
295
|
+
}
|
296
|
+
|
297
|
+
function policyHolderPayoutExecuted(
|
298
|
+
IRegistry registry,
|
299
|
+
NftId policyNftId,
|
300
|
+
PayoutId payoutId,
|
301
|
+
address beneficiary,
|
302
|
+
Amount payoutAmount
|
303
|
+
)
|
304
|
+
private
|
305
|
+
{
|
306
|
+
IPolicyHolder policyHolder = getPolicyHolder(registry, policyNftId);
|
307
|
+
if(address(policyHolder) != address(0)) {
|
308
|
+
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
309
|
+
}
|
310
|
+
}
|
311
|
+
|
312
|
+
/// @dev Transfers the specified amount from the "from account" to the pool's wallet
|
313
|
+
function pullStakingAmount(
|
314
|
+
InstanceReader reader,
|
315
|
+
NftId poolNftId,
|
316
|
+
address from,
|
317
|
+
Amount amount
|
318
|
+
)
|
319
|
+
external
|
320
|
+
{
|
321
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
322
|
+
info.tokenHandler.pullToken(
|
323
|
+
from,
|
324
|
+
amount);
|
325
|
+
}
|
326
|
+
|
327
|
+
/// @dev Transfers the specified amount from the pool's wallet to the "to account"
|
328
|
+
function pushUnstakingAmount(
|
329
|
+
InstanceReader reader,
|
330
|
+
NftId poolNftId,
|
331
|
+
address to,
|
332
|
+
Amount amount
|
333
|
+
)
|
334
|
+
external
|
335
|
+
{
|
336
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
337
|
+
info.tokenHandler.pushToken(
|
338
|
+
to,
|
339
|
+
amount);
|
340
|
+
}
|
216
341
|
}
|
@@ -2,13 +2,11 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
5
|
-
import {IBundle} from "../instance/module/IBundle.sol";
|
6
5
|
import {IBundleService} from "./IBundleService.sol";
|
7
6
|
import {IComponents} from "../instance/module/IComponents.sol";
|
8
7
|
import {IComponentService} from "../shared/IComponentService.sol";
|
9
8
|
import {IInstance} from "../instance/IInstance.sol";
|
10
9
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
|
-
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
12
10
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
13
11
|
import {IPoolService} from "./IPoolService.sol";
|
14
12
|
import {IProductComponent} from "../product/IProductComponent.sol";
|
@@ -27,9 +25,6 @@ import {PayoutId} from "../type/PayoutId.sol";
|
|
27
25
|
import {PoolLib} from "./PoolLib.sol";
|
28
26
|
import {Service} from "../shared/Service.sol";
|
29
27
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
30
|
-
import {UFixed} from "../type/UFixed.sol";
|
31
|
-
|
32
|
-
string constant POOL_SERVICE_NAME = "PoolService";
|
33
28
|
|
34
29
|
|
35
30
|
contract PoolService is
|
@@ -69,6 +64,7 @@ contract PoolService is
|
|
69
64
|
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
70
65
|
external
|
71
66
|
virtual
|
67
|
+
restricted()
|
72
68
|
{
|
73
69
|
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
74
70
|
InstanceReader instanceReader = instance.getInstanceReader();
|
@@ -84,6 +80,7 @@ contract PoolService is
|
|
84
80
|
|
85
81
|
function closeBundle(NftId bundleNftId)
|
86
82
|
external
|
83
|
+
restricted()
|
87
84
|
virtual
|
88
85
|
{
|
89
86
|
_checkNftType(bundleNftId, BUNDLE());
|
@@ -119,6 +116,7 @@ contract PoolService is
|
|
119
116
|
Amount availableAmount
|
120
117
|
)
|
121
118
|
external
|
119
|
+
restricted()
|
122
120
|
virtual
|
123
121
|
{
|
124
122
|
_checkNftType(policyNftId, POLICY());
|
@@ -175,7 +173,7 @@ contract PoolService is
|
|
175
173
|
function stake(NftId bundleNftId, Amount amount)
|
176
174
|
external
|
177
175
|
virtual
|
178
|
-
|
176
|
+
restricted()
|
179
177
|
returns(
|
180
178
|
Amount netAmount
|
181
179
|
)
|
@@ -222,7 +220,7 @@ contract PoolService is
|
|
222
220
|
|
223
221
|
// collect tokens from bundle owner
|
224
222
|
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
225
|
-
|
223
|
+
PoolLib.pullStakingAmount(
|
226
224
|
instanceReader,
|
227
225
|
poolNftId,
|
228
226
|
bundleOwner,
|
@@ -235,7 +233,7 @@ contract PoolService is
|
|
235
233
|
function unstake(NftId bundleNftId, Amount amount)
|
236
234
|
external
|
237
235
|
virtual
|
238
|
-
|
236
|
+
restricted()
|
239
237
|
returns(Amount netAmount)
|
240
238
|
{
|
241
239
|
(
|
@@ -269,7 +267,7 @@ contract PoolService is
|
|
269
267
|
|
270
268
|
// transfer amount to bundle owner
|
271
269
|
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
272
|
-
|
270
|
+
PoolLib.pushUnstakingAmount(
|
273
271
|
instanceReader,
|
274
272
|
poolNftId,
|
275
273
|
bundleOwner,
|
@@ -281,7 +279,7 @@ contract PoolService is
|
|
281
279
|
function fundPoolWallet(Amount amount)
|
282
280
|
external
|
283
281
|
virtual
|
284
|
-
|
282
|
+
restricted()
|
285
283
|
{
|
286
284
|
(
|
287
285
|
NftId poolNftId,
|
@@ -297,7 +295,7 @@ contract PoolService is
|
|
297
295
|
address poolOwner = getRegistry().ownerOf(poolNftId);
|
298
296
|
emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
|
299
297
|
|
300
|
-
|
298
|
+
PoolLib.pullStakingAmount(
|
301
299
|
reader,
|
302
300
|
poolNftId,
|
303
301
|
poolOwner,
|
@@ -308,7 +306,7 @@ contract PoolService is
|
|
308
306
|
function defundPoolWallet(Amount amount)
|
309
307
|
external
|
310
308
|
virtual
|
311
|
-
|
309
|
+
restricted()
|
312
310
|
{
|
313
311
|
(
|
314
312
|
NftId poolNftId,
|
@@ -324,7 +322,7 @@ contract PoolService is
|
|
324
322
|
address poolOwner = getRegistry().ownerOf(poolNftId);
|
325
323
|
emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
|
326
324
|
|
327
|
-
|
325
|
+
PoolLib.pushUnstakingAmount(
|
328
326
|
reader,
|
329
327
|
poolNftId,
|
330
328
|
poolOwner,
|
@@ -363,6 +361,8 @@ contract PoolService is
|
|
363
361
|
bundleNftId,
|
364
362
|
bundleNetAmount,
|
365
363
|
bundleFeeAmount);
|
364
|
+
|
365
|
+
emit LogPoolServiceSaleProcessed(poolNftId, bundleNftId, bundleNetAmount, bundleFeeAmount, poolFeeAmount);
|
366
366
|
}
|
367
367
|
|
368
368
|
|
@@ -421,10 +421,15 @@ contract PoolService is
|
|
421
421
|
bundleNftId,
|
422
422
|
totalCollateralAmount);
|
423
423
|
|
424
|
-
|
424
|
+
emit LogPoolServiceApplicationVerified(poolNftId, bundleNftId, applicationNftId, totalCollateralAmount);
|
425
425
|
}
|
426
426
|
|
427
|
-
|
427
|
+
emit LogPoolServiceCollateralLocked(
|
428
|
+
poolNftId,
|
429
|
+
bundleNftId,
|
430
|
+
applicationNftId,
|
431
|
+
totalCollateralAmount,
|
432
|
+
localCollateralAmount);
|
428
433
|
}
|
429
434
|
|
430
435
|
function processPayout(
|
@@ -440,6 +445,10 @@ contract PoolService is
|
|
440
445
|
external
|
441
446
|
virtual
|
442
447
|
restricted()
|
448
|
+
returns (
|
449
|
+
Amount netPayoutAmount,
|
450
|
+
Amount processingFeeAmount
|
451
|
+
)
|
443
452
|
{
|
444
453
|
// checks
|
445
454
|
_checkNftType(policyNftId, POLICY());
|
@@ -466,9 +475,7 @@ contract PoolService is
|
|
466
475
|
payoutAmount);
|
467
476
|
|
468
477
|
// update value locked with staking service
|
469
|
-
TokenHandler poolTokenHandler =
|
470
|
-
instanceReader.getTokenHandler(
|
471
|
-
poolNftId));
|
478
|
+
TokenHandler poolTokenHandler = instanceReader.getTokenHandler(poolNftId);
|
472
479
|
|
473
480
|
_staking.decreaseTotalValueLocked(
|
474
481
|
instanceReader.getInstanceNftId(),
|
@@ -476,7 +483,8 @@ contract PoolService is
|
|
476
483
|
payoutAmount);
|
477
484
|
|
478
485
|
// interactions
|
479
|
-
|
486
|
+
(netPayoutAmount, processingFeeAmount) = PoolLib.transferTokenAndNotifyPolicyHolder(
|
487
|
+
getRegistry(),
|
480
488
|
instanceReader,
|
481
489
|
poolTokenHandler,
|
482
490
|
productNftId,
|
@@ -484,50 +492,22 @@ contract PoolService is
|
|
484
492
|
payoutId,
|
485
493
|
payoutAmount,
|
486
494
|
payoutBeneficiary);
|
487
|
-
|
488
|
-
|
489
|
-
function _transferTokenAndNotifyPolicyHolder(
|
490
|
-
InstanceReader instanceReader,
|
491
|
-
TokenHandler poolTokenHandler,
|
492
|
-
NftId productNftId,
|
493
|
-
NftId policyNftId,
|
494
|
-
PayoutId payoutId,
|
495
|
-
Amount payoutAmount,
|
496
|
-
address payoutBeneficiary
|
497
|
-
)
|
498
|
-
internal
|
499
|
-
{
|
500
|
-
(
|
501
|
-
Amount netPayoutAmount,
|
502
|
-
Amount processingFeeAmount,
|
503
|
-
address beneficiary
|
504
|
-
) = PoolLib.calculatePayoutAmounts(
|
505
|
-
getRegistry(),
|
506
|
-
instanceReader,
|
507
|
-
productNftId,
|
508
|
-
policyNftId,
|
509
|
-
payoutAmount,
|
510
|
-
payoutBeneficiary);
|
511
|
-
|
512
|
-
// 1st token tx to payout to beneficiary
|
513
|
-
poolTokenHandler.pushToken(
|
514
|
-
beneficiary,
|
515
|
-
netPayoutAmount);
|
516
|
-
|
517
|
-
// 2nd token tx to transfer processing fees to product wallet
|
518
|
-
// if processingFeeAmount > 0
|
495
|
+
|
519
496
|
if (processingFeeAmount.gtz()) {
|
520
|
-
|
521
|
-
|
497
|
+
_accountingService.increaseProductFeesForPool(
|
498
|
+
instanceStore,
|
499
|
+
productNftId,
|
522
500
|
processingFeeAmount);
|
523
501
|
}
|
524
502
|
|
525
|
-
|
526
|
-
|
503
|
+
emit LogPoolServicePayoutProcessed(
|
504
|
+
poolNftId,
|
505
|
+
bundleNftId,
|
527
506
|
policyNftId,
|
528
507
|
payoutId,
|
529
|
-
|
530
|
-
|
508
|
+
netPayoutAmount,
|
509
|
+
processingFeeAmount,
|
510
|
+
payoutBeneficiary);
|
531
511
|
}
|
532
512
|
|
533
513
|
|
@@ -607,112 +587,11 @@ contract PoolService is
|
|
607
587
|
instanceReader.getInstanceNftId(),
|
608
588
|
address(instanceReader.getToken(policyInfo.productNftId)),
|
609
589
|
remainingCollateralAmount);
|
610
|
-
}
|
611
|
-
|
612
|
-
|
613
|
-
// function calculateRequiredCollateral(
|
614
|
-
// InstanceReader instanceReader,
|
615
|
-
// NftId productNftId,
|
616
|
-
// Amount sumInsuredAmount
|
617
|
-
// )
|
618
|
-
// public
|
619
|
-
// view
|
620
|
-
// returns(
|
621
|
-
// NftId poolNftId,
|
622
|
-
// Amount totalCollateralAmount,
|
623
|
-
// Amount localCollateralAmount,
|
624
|
-
// bool poolIsVerifyingApplications
|
625
|
-
// )
|
626
|
-
// {
|
627
|
-
// return CollateralLib.calculateRequiredCollateral(
|
628
|
-
// instanceReader,
|
629
|
-
// productNftId,
|
630
|
-
// sumInsuredAmount);
|
631
|
-
// }
|
632
590
|
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
// poolIsVerifyingApplications = poolInfo.isVerifyingApplications;
|
638
|
-
|
639
|
-
// (
|
640
|
-
// totalCollateralAmount,
|
641
|
-
// localCollateralAmount
|
642
|
-
// ) = calculateRequiredCollateral(
|
643
|
-
// poolInfo.collateralizationLevel,
|
644
|
-
// poolInfo.retentionLevel,
|
645
|
-
// sumInsuredAmount);
|
646
|
-
// }
|
647
|
-
|
648
|
-
|
649
|
-
// function calculateRequiredCollateral(
|
650
|
-
// UFixed collateralizationLevel,
|
651
|
-
// UFixed retentionLevel,
|
652
|
-
// Amount sumInsuredAmount
|
653
|
-
// )
|
654
|
-
// public
|
655
|
-
// pure
|
656
|
-
// returns(
|
657
|
-
// Amount totalCollateralAmount,
|
658
|
-
// Amount localCollateralAmount
|
659
|
-
// )
|
660
|
-
// {
|
661
|
-
// // collateralization is applied to sum insured
|
662
|
-
// UFixed totalUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
|
663
|
-
// totalCollateralAmount = AmountLib.toAmount(totalUFixed.toInt());
|
664
|
-
|
665
|
-
// // retention level defines how much capital is required locally
|
666
|
-
// localCollateralAmount = AmountLib.toAmount(
|
667
|
-
// (retentionLevel * totalUFixed).toInt());
|
668
|
-
// }
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
function _policyHolderPayoutExecuted(
|
674
|
-
NftId policyNftId,
|
675
|
-
PayoutId payoutId,
|
676
|
-
address beneficiary,
|
677
|
-
Amount payoutAmount
|
678
|
-
)
|
679
|
-
internal
|
680
|
-
{
|
681
|
-
IPolicyHolder policyHolder = PoolLib.getPolicyHolder(getRegistry(), policyNftId);
|
682
|
-
if(address(policyHolder) != address(0)) {
|
683
|
-
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
684
|
-
}
|
685
|
-
}
|
686
|
-
|
687
|
-
|
688
|
-
/// @dev Transfers the specified amount from the "from account" to the pool's wallet
|
689
|
-
function _pullStakingAmount(
|
690
|
-
InstanceReader reader,
|
691
|
-
NftId poolNftId,
|
692
|
-
address from,
|
693
|
-
Amount amount
|
694
|
-
)
|
695
|
-
internal
|
696
|
-
{
|
697
|
-
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
698
|
-
info.tokenHandler.pullToken(
|
699
|
-
from,
|
700
|
-
amount);
|
701
|
-
}
|
702
|
-
|
703
|
-
/// @dev Transfers the specified amount from the pool's wallet to the "to account"
|
704
|
-
function _pushUnstakingAmount(
|
705
|
-
InstanceReader reader,
|
706
|
-
NftId poolNftId,
|
707
|
-
address to,
|
708
|
-
Amount amount
|
709
|
-
)
|
710
|
-
internal
|
711
|
-
{
|
712
|
-
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
713
|
-
info.tokenHandler.pushToken(
|
714
|
-
to,
|
715
|
-
amount);
|
591
|
+
emit LogPoolServiceCollateralReleased(
|
592
|
+
policyInfo.bundleNftId,
|
593
|
+
policyNftId,
|
594
|
+
remainingCollateralAmount);
|
716
595
|
}
|
717
596
|
|
718
597
|
|
@@ -728,28 +607,6 @@ contract PoolService is
|
|
728
607
|
return PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
729
608
|
}
|
730
609
|
|
731
|
-
// function _getAndVerifyActivePool()
|
732
|
-
// internal
|
733
|
-
// virtual
|
734
|
-
// view
|
735
|
-
// returns (
|
736
|
-
// NftId poolNftId,
|
737
|
-
// IInstance instance
|
738
|
-
// )
|
739
|
-
// {
|
740
|
-
// (
|
741
|
-
// IRegistry.ObjectInfo memory info,
|
742
|
-
// address instanceAddress
|
743
|
-
// ) = ContractLib.getAndVerifyComponent(
|
744
|
-
// getRegistry(),
|
745
|
-
// msg.sender,
|
746
|
-
// POOL(),
|
747
|
-
// true); // only active pools
|
748
|
-
|
749
|
-
// poolNftId = info.nftId;
|
750
|
-
// instance = IInstance(instanceAddress);
|
751
|
-
// }
|
752
|
-
|
753
610
|
|
754
611
|
function _getDomain() internal pure override returns(ObjectType) {
|
755
612
|
return POOL();
|
@@ -11,6 +11,7 @@ import {IPricingService} from "./IPricingService.sol";
|
|
11
11
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
12
12
|
|
13
13
|
import {AmountLib} from "../type/Amount.sol";
|
14
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
14
15
|
import {Seconds} from "../type/Seconds.sol";
|
15
16
|
import {zeroTimestamp} from "../type/Timestamp.sol";
|
16
17
|
import {ObjectType, BUNDLE, DISTRIBUTION, PRODUCT, REGISTRY, APPLICATION, POLICY, PRICE} from "../type/ObjectType.sol";
|
@@ -19,13 +20,12 @@ import {NftId, NftIdLib} from "../type/NftId.sol";
|
|
19
20
|
import {ReferralId} from "../type/Referral.sol";
|
20
21
|
import {RiskId} from "../type/RiskId.sol";
|
21
22
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
22
|
-
import {
|
23
|
+
import {Service} from "../shared/Service.sol";
|
23
24
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
24
25
|
|
25
26
|
|
26
|
-
|
27
27
|
contract ApplicationService is
|
28
|
-
|
28
|
+
Service,
|
29
29
|
IApplicationService
|
30
30
|
{
|
31
31
|
IDistributionService private _distributionService;
|
@@ -69,10 +69,10 @@ contract ApplicationService is
|
|
69
69
|
// check risk with product
|
70
70
|
(bool exists, bool active) = instanceReader.getRiskSet().checkRisk(productNftId, riskId);
|
71
71
|
if (!exists) { revert ErrorApplicationServiceRiskUnknown(riskId, productNftId); }
|
72
|
-
if (!active) { revert
|
72
|
+
if (!active) { revert ErrorApplicationServiceRiskLocked(riskId, productNftId); }
|
73
73
|
|
74
74
|
NftId riskProductNftId = instanceReader.getRiskInfo(riskId).productNftId;
|
75
|
-
if (
|
75
|
+
if (productNftId != riskProductNftId) {
|
76
76
|
revert ErrorApplicationServiceRiskProductMismatch(riskId, riskProductNftId, productNftId);
|
77
77
|
}
|
78
78
|
|
@@ -149,12 +149,13 @@ contract ApplicationService is
|
|
149
149
|
)
|
150
150
|
external
|
151
151
|
virtual
|
152
|
+
restricted()
|
152
153
|
nonReentrant()
|
153
154
|
returns (NftId applicationNftId)
|
154
155
|
{
|
155
156
|
_checkNftType(bundleNftId, BUNDLE());
|
156
157
|
|
157
|
-
(NftId productNftId
|
158
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveProduct();
|
158
159
|
|
159
160
|
// check if provided references are valid and linked to calling product contract
|
160
161
|
InstanceReader instanceReader = instance.getInstanceReader();
|
@@ -180,11 +181,32 @@ contract ApplicationService is
|
|
180
181
|
applicationData);
|
181
182
|
|
182
183
|
// register application with instance
|
183
|
-
instance.
|
184
|
+
instance.getProductStore().createApplication(
|
184
185
|
applicationNftId,
|
185
186
|
applicationInfo);
|
186
187
|
|
187
|
-
|
188
|
+
_emitApplicationCreatedEvent(applicationNftId, applicationOwner, applicationInfo);
|
189
|
+
}
|
190
|
+
|
191
|
+
function _emitApplicationCreatedEvent(
|
192
|
+
NftId applicationNftId,
|
193
|
+
address applicationOwner,
|
194
|
+
IPolicy.PolicyInfo memory applicationInfo
|
195
|
+
)
|
196
|
+
internal
|
197
|
+
virtual
|
198
|
+
{
|
199
|
+
emit LogApplicationServiceApplicationCreated(
|
200
|
+
applicationNftId,
|
201
|
+
applicationInfo.productNftId,
|
202
|
+
applicationInfo.bundleNftId,
|
203
|
+
applicationInfo.riskId,
|
204
|
+
applicationInfo.referralId,
|
205
|
+
applicationOwner,
|
206
|
+
applicationInfo.sumInsuredAmount,
|
207
|
+
applicationInfo.premiumAmount,
|
208
|
+
applicationInfo.lifetime
|
209
|
+
);
|
188
210
|
}
|
189
211
|
|
190
212
|
function _createApplicationInfo(
|
@@ -227,12 +249,16 @@ contract ApplicationService is
|
|
227
249
|
)
|
228
250
|
external
|
229
251
|
virtual
|
252
|
+
restricted()
|
230
253
|
nonReentrant()
|
231
254
|
returns (NftId applicationNftId)
|
232
255
|
{
|
233
256
|
_checkNftType(policyNftId, POLICY());
|
234
257
|
_checkNftType(bundleNftId, BUNDLE());
|
235
|
-
|
258
|
+
|
259
|
+
// TODO: implement
|
260
|
+
|
261
|
+
emit LogApplicationServiceApplicationRenewed(policyNftId, bundleNftId);
|
236
262
|
}
|
237
263
|
|
238
264
|
|
@@ -247,26 +273,53 @@ contract ApplicationService is
|
|
247
273
|
)
|
248
274
|
external
|
249
275
|
virtual
|
276
|
+
restricted()
|
250
277
|
nonReentrant()
|
251
278
|
{
|
252
279
|
_checkNftType(applicationNftId, POLICY());
|
253
280
|
_checkNftType(bundleNftId, BUNDLE());
|
254
|
-
|
281
|
+
|
282
|
+
// TODO: implement
|
283
|
+
|
284
|
+
emit LogApplicationServiceApplicationAdjusted(applicationNftId, bundleNftId, riskId, referralId, sumInsuredAmount, lifetime);
|
255
285
|
}
|
256
286
|
|
257
287
|
function revoke(NftId applicationNftId)
|
258
288
|
external
|
259
289
|
virtual
|
290
|
+
restricted()
|
260
291
|
nonReentrant()
|
261
292
|
{
|
262
293
|
_checkNftType(applicationNftId, POLICY());
|
263
294
|
|
264
|
-
(
|
265
|
-
instance.
|
295
|
+
(, IInstance instance) = _getAndVerifyActiveProduct();
|
296
|
+
instance.getProductStore().updateApplicationState(applicationNftId, REVOKED());
|
297
|
+
emit LogApplicationServiceApplicationRevoked(applicationNftId);
|
266
298
|
}
|
267
299
|
|
268
300
|
// internal functions
|
269
301
|
|
302
|
+
function _getAndVerifyActiveProduct()
|
303
|
+
internal
|
304
|
+
view
|
305
|
+
returns (
|
306
|
+
NftId productNftId,
|
307
|
+
IInstance instance
|
308
|
+
)
|
309
|
+
{
|
310
|
+
(
|
311
|
+
IRegistry.ObjectInfo memory info,
|
312
|
+
address instanceAddress
|
313
|
+
) = ContractLib.getAndVerifyComponent(
|
314
|
+
getRegistry(),
|
315
|
+
msg.sender,
|
316
|
+
PRODUCT(),
|
317
|
+
true); // only active pools
|
318
|
+
|
319
|
+
productNftId = info.nftId;
|
320
|
+
instance = IInstance(instanceAddress);
|
321
|
+
}
|
322
|
+
|
270
323
|
|
271
324
|
function _getDomain() internal pure override returns(ObjectType) {
|
272
325
|
return APPLICATION();
|