@etherisc/gif-next 3.0.0-f90c901-018 → 3.0.0-fbbe3fc-042
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 +1 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +72 -139
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +116 -110
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +33 -72
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +70 -105
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +150 -126
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +65 -20
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
- 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 +10 -20
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +75 -126
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -72
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +139 -198
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -140
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +56 -84
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -71
- 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 +104 -166
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +138 -200
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +728 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1234 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2497 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +102 -159
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +106 -163
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +120 -177
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +114 -171
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +54 -49
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +26 -78
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +44 -83
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +51 -145
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +151 -185
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +203 -77
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +75 -138
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -104
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +58 -53
- 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 +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 +8 -3
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- 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 +81 -132
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
- 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 +66 -94
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +83 -80
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -82
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +148 -149
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -111
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -88
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +117 -176
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +139 -129
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -71
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +72 -100
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +86 -94
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -88
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +247 -24
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +165 -233
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +130 -140
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +63 -138
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +112 -110
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +57 -72
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +115 -182
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +138 -132
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +32 -71
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +32 -71
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +64 -82
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -82
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +56 -84
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +36 -75
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +127 -173
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -122
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +94 -161
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +57 -72
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -146
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +107 -109
- 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 +56 -155
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +216 -202
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -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 +96 -314
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +146 -179
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -57
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +244 -285
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +110 -115
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +154 -175
- 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 +187 -135
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +29 -13
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +39 -84
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +320 -164
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -115
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +633 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -96
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +226 -82
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +56 -84
- 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 +28 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +25 -77
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +32 -71
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -72
- 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 +34 -15
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -76
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +31 -70
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -42
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -30
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +56 -101
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +36 -75
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +109 -170
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -26
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +124 -112
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +65 -132
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -105
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +204 -212
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +19 -27
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
- 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/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/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 +22 -25
- 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 +23 -4
- 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/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -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 +21 -2
- 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/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +86 -63
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
- package/contracts/accounting/AccountingService.sol +6 -5
- package/contracts/accounting/AccountingServiceManager.sol +6 -4
- package/contracts/accounting/IAccountingService.sol +1 -1
- package/contracts/authorization/AccessAdmin.sol +43 -45
- package/contracts/authorization/AccessAdminLib.sol +29 -15
- package/contracts/authorization/AccessManagerCloneable.sol +48 -24
- package/contracts/authorization/Authorization.sol +2 -2
- package/contracts/authorization/IAccessAdmin.sol +3 -3
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistribution.sol +2 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
- package/contracts/distribution/Distribution.sol +2 -0
- package/contracts/distribution/DistributionService.sol +20 -24
- package/contracts/distribution/DistributionServiceManager.sol +6 -4
- package/contracts/examples/fire/FirePool.sol +4 -0
- package/contracts/examples/fire/FireProduct.sol +4 -0
- package/contracts/examples/flight/FlightLib.sol +300 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightOracle.sol +171 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +53 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +685 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +69 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
- package/contracts/instance/IInstance.sol +1 -1
- package/contracts/instance/Instance.sol +12 -8
- package/contracts/instance/InstanceAdmin.sol +17 -11
- package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
- package/contracts/instance/InstanceReader.sol +46 -18
- package/contracts/instance/InstanceService.sol +20 -18
- package/contracts/instance/InstanceServiceManager.sol +6 -4
- package/contracts/instance/base/Cloneable.sol +10 -4
- package/contracts/instance/base/ObjectSet.sol +2 -2
- package/contracts/oracle/BasicOracle.sol +2 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
- package/contracts/oracle/IOracleService.sol +16 -12
- package/contracts/oracle/Oracle.sol +4 -3
- package/contracts/oracle/OracleService.sol +67 -37
- package/contracts/oracle/OracleServiceManager.sol +6 -4
- package/contracts/pool/BasicPool.sol +4 -2
- package/contracts/pool/BasicPoolAuthorization.sol +4 -5
- package/contracts/pool/BundleService.sol +19 -25
- package/contracts/pool/BundleServiceManager.sol +7 -5
- package/contracts/pool/IPoolService.sol +6 -5
- package/contracts/pool/Pool.sol +3 -1
- package/contracts/pool/PoolLib.sol +102 -5
- package/contracts/pool/PoolService.sol +101 -67
- package/contracts/pool/PoolServiceManager.sol +6 -4
- package/contracts/product/ApplicationService.sol +34 -13
- package/contracts/product/ApplicationServiceManager.sol +6 -4
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +7 -7
- package/contracts/product/ClaimService.sol +34 -10
- package/contracts/product/ClaimServiceManager.sol +7 -5
- package/contracts/product/IPolicyService.sol +1 -0
- package/contracts/product/PolicyService.sol +57 -44
- package/contracts/product/PolicyServiceManager.sol +6 -4
- package/contracts/product/PricingService.sol +8 -7
- package/contracts/product/PricingServiceManager.sol +6 -4
- package/contracts/product/Product.sol +2 -0
- package/contracts/product/RiskService.sol +40 -8
- package/contracts/product/RiskServiceManager.sol +6 -4
- package/contracts/registry/IRegistry.sol +14 -20
- package/contracts/registry/IRegistryService.sol +14 -10
- package/contracts/registry/IRelease.sol +3 -0
- package/contracts/registry/Registry.sol +78 -124
- package/contracts/registry/RegistryAdmin.sol +29 -12
- package/contracts/registry/RegistryAuthorization.sol +3 -4
- package/contracts/registry/RegistryService.sol +82 -99
- package/contracts/registry/RegistryServiceManager.sol +11 -4
- package/contracts/registry/ReleaseAdmin.sol +23 -9
- package/contracts/registry/ReleaseRegistry.sol +74 -64
- package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
- package/contracts/registry/TokenRegistry.sol +15 -6
- package/contracts/shared/Component.sol +22 -27
- package/contracts/shared/ComponentService.sol +130 -45
- package/contracts/shared/ComponentServiceManager.sol +7 -5
- package/contracts/shared/ContractLib.sol +93 -359
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +3 -5
- package/contracts/shared/IComponentService.sol +14 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +3 -14
- package/contracts/shared/IRegistryLinked.sol +3 -1
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +130 -39
- package/contracts/shared/NftOwnable.sol +22 -9
- package/contracts/shared/PolicyHolder.sol +4 -2
- package/contracts/shared/Registerable.sol +20 -37
- package/contracts/shared/RegistryLinked.sol +23 -4
- package/contracts/shared/Service.sol +9 -8
- package/contracts/shared/TokenHandler.sol +1 -4
- package/contracts/staking/IStaking.sol +2 -2
- package/contracts/staking/Staking.sol +33 -28
- package/contracts/staking/StakingLib.sol +1 -3
- package/contracts/staking/StakingManager.sol +6 -3
- package/contracts/staking/StakingReader.sol +17 -9
- package/contracts/staking/StakingService.sol +13 -16
- package/contracts/staking/StakingServiceManager.sol +8 -4
- package/contracts/staking/StakingStore.sol +8 -8
- package/contracts/staking/TargetHandler.sol +5 -4
- package/contracts/type/ObjectType.sol +2 -31
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/String.sol +30 -0
- package/contracts/type/Timestamp.sol +10 -1
- package/contracts/type/Version.sol +16 -15
- package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
- package/contracts/upgradeability/ProxyManager.sol +54 -46
- package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
- package/package.json +2 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
- package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
- package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
- package/contracts/shared/IVersionable.sol +0 -19
- package/contracts/shared/Versionable.sol +0 -47
@@ -42,18 +42,19 @@ contract PoolService is
|
|
42
42
|
)
|
43
43
|
internal
|
44
44
|
virtual override
|
45
|
-
|
45
|
+
initializer()
|
46
46
|
{
|
47
47
|
(
|
48
|
-
address authority
|
49
|
-
|
48
|
+
address authority,
|
49
|
+
address registry
|
50
|
+
) = abi.decode(data, (address, address));
|
50
51
|
|
51
|
-
__Service_init(authority, owner);
|
52
|
+
__Service_init(authority, registry, owner);
|
52
53
|
|
53
54
|
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
54
55
|
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
55
56
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
56
|
-
_staking = IStaking(
|
57
|
+
_staking = IStaking(getRegistry().getStakingAddress());
|
57
58
|
|
58
59
|
_registerInterface(type(IPoolService).interfaceId);
|
59
60
|
}
|
@@ -65,11 +66,7 @@ contract PoolService is
|
|
65
66
|
virtual
|
66
67
|
restricted()
|
67
68
|
{
|
68
|
-
(
|
69
|
-
NftId poolNftId,
|
70
|
-
IInstance instance
|
71
|
-
) = ContractLib.getAndVerifyPool(getRelease());
|
72
|
-
|
69
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
73
70
|
InstanceReader instanceReader = instance.getInstanceReader();
|
74
71
|
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
75
72
|
|
@@ -81,20 +78,15 @@ contract PoolService is
|
|
81
78
|
}
|
82
79
|
|
83
80
|
|
84
|
-
// TODO closing bundle here but creating in bundle service
|
85
81
|
function closeBundle(NftId bundleNftId)
|
86
82
|
external
|
87
83
|
restricted()
|
88
84
|
virtual
|
89
85
|
{
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
IInstance instance
|
94
|
-
) = ContractLib.getAndVerifyPoolForBundle(
|
95
|
-
bundleNftId, getRelease());
|
86
|
+
_checkNftType(bundleNftId, BUNDLE());
|
87
|
+
|
88
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
96
89
|
|
97
|
-
// effects
|
98
90
|
// TODO get performance fee for pool (#477)
|
99
91
|
|
100
92
|
// releasing collateral in bundle
|
@@ -103,15 +95,15 @@ contract PoolService is
|
|
103
95
|
_accountingService.decreasePoolBalance(
|
104
96
|
instance.getInstanceStore(),
|
105
97
|
poolNftId,
|
106
|
-
unstakedAmount +
|
98
|
+
unstakedAmount + feeAmount,
|
107
99
|
AmountLib.zero());
|
108
100
|
|
109
|
-
emit LogPoolServiceBundleClosed(poolNftId, bundleNftId);
|
101
|
+
emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
|
110
102
|
|
111
|
-
if ((unstakedAmount + feeAmount).gtz())
|
112
|
-
|
113
|
-
tokenHandler.pushToken(
|
114
|
-
|
103
|
+
if ((unstakedAmount + feeAmount).gtz()){
|
104
|
+
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
|
105
|
+
poolComponentInfo.tokenHandler.pushToken(
|
106
|
+
getRegistry().ownerOf(bundleNftId),
|
115
107
|
unstakedAmount + feeAmount);
|
116
108
|
}
|
117
109
|
}
|
@@ -127,25 +119,56 @@ contract PoolService is
|
|
127
119
|
restricted()
|
128
120
|
virtual
|
129
121
|
{
|
130
|
-
(
|
131
|
-
NftId poolNftId,
|
132
|
-
IInstance instance
|
133
|
-
) = ContractLib.getAndVerifyPoolForPolicy(
|
134
|
-
policyNftId, getRelease());
|
122
|
+
_checkNftType(policyNftId, POLICY());
|
135
123
|
|
124
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
136
125
|
InstanceReader instanceReader = instance.getInstanceReader();
|
137
|
-
NftId productNftId =
|
126
|
+
NftId productNftId = getRegistry().getParentNftId(poolNftId);
|
127
|
+
|
128
|
+
// check policy matches with calling pool
|
129
|
+
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
130
|
+
if(policyInfo.productNftId != productNftId) {
|
131
|
+
revert ErrorPoolServicePolicyPoolMismatch(
|
132
|
+
policyNftId,
|
133
|
+
policyInfo.productNftId,
|
134
|
+
productNftId);
|
135
|
+
}
|
138
136
|
|
139
|
-
emit LogPoolServiceProcessFundedClaim(
|
137
|
+
emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
|
140
138
|
|
141
|
-
// TODO reading the whole struct for just 1 check
|
142
139
|
// callback to product component if applicable
|
143
140
|
if (instanceReader.getProductInfo(productNftId).isProcessingFundedClaims) {
|
144
|
-
address productAddress =
|
141
|
+
address productAddress = getRegistry().getObjectAddress(productNftId);
|
145
142
|
IProductComponent(productAddress).processFundedClaim(policyNftId, claimId, availableAmount);
|
146
143
|
}
|
147
144
|
}
|
148
145
|
|
146
|
+
|
147
|
+
// function _checkAndGetPoolInfo(NftId bundleNftId)
|
148
|
+
// internal
|
149
|
+
// view
|
150
|
+
// returns (
|
151
|
+
// InstanceReader instanceReader,
|
152
|
+
// InstanceStore instanceStore,
|
153
|
+
// NftId instanceNftId,
|
154
|
+
// NftId poolNftId,
|
155
|
+
// IComponents.PoolInfo memory poolInfo
|
156
|
+
// )
|
157
|
+
// {
|
158
|
+
// _checkNftType(bundleNftId, BUNDLE());
|
159
|
+
|
160
|
+
// (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
161
|
+
// instanceReader = instance.getInstanceReader();
|
162
|
+
// instanceStore = instance.getInstanceStore();
|
163
|
+
// instanceNftId = instance.getNftId();
|
164
|
+
// poolInfo = instanceReader.getPoolInfo(poolNftId);
|
165
|
+
|
166
|
+
// if (getRegistry().getParentNftId(bundleNftId) != poolNftId) {
|
167
|
+
// revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
168
|
+
// }
|
169
|
+
// }
|
170
|
+
|
171
|
+
|
149
172
|
/// @inheritdoc IPoolService
|
150
173
|
function stake(NftId bundleNftId, Amount amount)
|
151
174
|
external
|
@@ -156,14 +179,12 @@ contract PoolService is
|
|
156
179
|
)
|
157
180
|
{
|
158
181
|
(
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
InstanceStore instanceStore = instance.getInstanceStore();
|
166
|
-
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
182
|
+
InstanceReader instanceReader,
|
183
|
+
InstanceStore instanceStore,
|
184
|
+
NftId instanceNftId,
|
185
|
+
NftId poolNftId,
|
186
|
+
IComponents.PoolInfo memory poolInfo
|
187
|
+
) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
|
167
188
|
|
168
189
|
{
|
169
190
|
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
@@ -178,6 +199,7 @@ contract PoolService is
|
|
178
199
|
feeAmount,
|
179
200
|
netAmount
|
180
201
|
) = PoolLib.calculateStakingAmounts(
|
202
|
+
getRegistry(),
|
181
203
|
instanceReader,
|
182
204
|
poolNftId,
|
183
205
|
amount);
|
@@ -191,13 +213,13 @@ contract PoolService is
|
|
191
213
|
|
192
214
|
_bundleService.stake(instanceReader, instanceStore, bundleNftId, netAmount);
|
193
215
|
|
194
|
-
emit LogPoolServiceBundleStaked(poolNftId, bundleNftId, amount, netAmount);
|
216
|
+
emit LogPoolServiceBundleStaked(instanceNftId, poolNftId, bundleNftId, amount, netAmount);
|
195
217
|
|
196
218
|
// only collect staking amount when pool is not externally managed
|
197
219
|
if (!poolInfo.isExternallyManaged) {
|
198
220
|
|
199
221
|
// collect tokens from bundle owner
|
200
|
-
address bundleOwner =
|
222
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
201
223
|
PoolLib.pullStakingAmount(
|
202
224
|
instanceReader,
|
203
225
|
poolNftId,
|
@@ -215,13 +237,11 @@ contract PoolService is
|
|
215
237
|
returns(Amount netAmount)
|
216
238
|
{
|
217
239
|
(
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
224
|
-
InstanceStore instanceStore = instance.getInstanceStore();
|
240
|
+
InstanceReader instanceReader,
|
241
|
+
InstanceStore instanceStore,
|
242
|
+
NftId instanceNftId,
|
243
|
+
NftId poolNftId,
|
244
|
+
) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
|
225
245
|
|
226
246
|
// call bundle service for bookkeeping and additional checks
|
227
247
|
Amount unstakedAmount = _bundleService.unstake(instanceStore, bundleNftId, amount);
|
@@ -240,13 +260,13 @@ contract PoolService is
|
|
240
260
|
AmountLib.zero());
|
241
261
|
|
242
262
|
|
243
|
-
emit LogPoolServiceBundleUnstaked(poolNftId, bundleNftId, unstakedAmount, netAmount);
|
263
|
+
emit LogPoolServiceBundleUnstaked(instanceNftId, poolNftId, bundleNftId, unstakedAmount, netAmount);
|
244
264
|
|
245
265
|
// only distribute staking amount when pool is not externally managed
|
246
266
|
if (!instanceReader.getPoolInfo(poolNftId).isExternallyManaged) {
|
247
267
|
|
248
268
|
// transfer amount to bundle owner
|
249
|
-
address bundleOwner =
|
269
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
250
270
|
PoolLib.pushUnstakingAmount(
|
251
271
|
instanceReader,
|
252
272
|
poolNftId,
|
@@ -264,7 +284,7 @@ contract PoolService is
|
|
264
284
|
(
|
265
285
|
NftId poolNftId,
|
266
286
|
IInstance instance
|
267
|
-
) =
|
287
|
+
) = _getAndVerifyActivePool();
|
268
288
|
|
269
289
|
// check that pool is externally managed
|
270
290
|
InstanceReader reader = instance.getInstanceReader();
|
@@ -272,7 +292,7 @@ contract PoolService is
|
|
272
292
|
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
273
293
|
}
|
274
294
|
|
275
|
-
address poolOwner =
|
295
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
276
296
|
emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
|
277
297
|
|
278
298
|
PoolLib.pullStakingAmount(
|
@@ -291,7 +311,7 @@ contract PoolService is
|
|
291
311
|
(
|
292
312
|
NftId poolNftId,
|
293
313
|
IInstance instance
|
294
|
-
) =
|
314
|
+
) = _getAndVerifyActivePool();
|
295
315
|
|
296
316
|
// check that pool is externally managed
|
297
317
|
InstanceReader reader = instance.getInstanceReader();
|
@@ -299,7 +319,7 @@ contract PoolService is
|
|
299
319
|
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
300
320
|
}
|
301
321
|
|
302
|
-
address poolOwner =
|
322
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
303
323
|
emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
|
304
324
|
|
305
325
|
PoolLib.pushUnstakingAmount(
|
@@ -320,8 +340,10 @@ contract PoolService is
|
|
320
340
|
{
|
321
341
|
_checkNftType(bundleNftId, BUNDLE());
|
322
342
|
|
323
|
-
|
324
|
-
|
343
|
+
IRegistry registry = getRegistry();
|
344
|
+
NftId poolNftId = registry.getParentNftId(bundleNftId);
|
345
|
+
(, address instanceAddress) = ContractLib.getInfoAndInstance(registry, poolNftId, true);
|
346
|
+
IInstance instance = IInstance(instanceAddress);
|
325
347
|
|
326
348
|
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
327
349
|
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
@@ -392,7 +414,7 @@ contract PoolService is
|
|
392
414
|
// pool callback when required
|
393
415
|
if (poolIsVerifyingApplications) {
|
394
416
|
IPoolComponent pool = IPoolComponent(
|
395
|
-
|
417
|
+
getRegistry().getObjectAddress(poolNftId));
|
396
418
|
|
397
419
|
pool.verifyApplication(
|
398
420
|
applicationNftId,
|
@@ -432,7 +454,7 @@ contract PoolService is
|
|
432
454
|
_checkNftType(policyNftId, POLICY());
|
433
455
|
|
434
456
|
// effects
|
435
|
-
NftId poolNftId =
|
457
|
+
NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
|
436
458
|
|
437
459
|
_accountingService.decreasePoolBalance(
|
438
460
|
instanceStore,
|
@@ -462,6 +484,7 @@ contract PoolService is
|
|
462
484
|
|
463
485
|
// interactions
|
464
486
|
(netPayoutAmount, processingFeeAmount) = PoolLib.transferTokenAndNotifyPolicyHolder(
|
487
|
+
getRegistry(),
|
465
488
|
instanceReader,
|
466
489
|
poolTokenHandler,
|
467
490
|
productNftId,
|
@@ -499,12 +522,9 @@ contract PoolService is
|
|
499
522
|
returns (Amount withdrawnAmount)
|
500
523
|
{
|
501
524
|
// checks
|
502
|
-
(
|
503
|
-
NftId poolNftId,
|
504
|
-
IInstance instance
|
505
|
-
) = ContractLib.getAndVerifyPoolForBundle(
|
506
|
-
bundleNftId, getRelease());
|
525
|
+
_checkNftType(bundleNftId, BUNDLE());
|
507
526
|
|
527
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
508
528
|
InstanceReader reader = instance.getInstanceReader();
|
509
529
|
|
510
530
|
// determine withdrawn amount
|
@@ -530,10 +550,10 @@ contract PoolService is
|
|
530
550
|
// interactions
|
531
551
|
// transfer amount to bundle owner
|
532
552
|
{
|
533
|
-
address bundleOwner =
|
553
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
534
554
|
TokenHandler tokenHandler = reader.getTokenHandler(poolNftId);
|
535
555
|
address token = address(tokenHandler.TOKEN());
|
536
|
-
emit LogPoolServiceFeesWithdrawn(
|
556
|
+
emit LogPoolServiceFeesWithdrawn(bundleNftId, bundleOwner, token, withdrawnAmount);
|
537
557
|
|
538
558
|
tokenHandler.pushToken(bundleOwner, withdrawnAmount);
|
539
559
|
}
|
@@ -574,6 +594,20 @@ contract PoolService is
|
|
574
594
|
remainingCollateralAmount);
|
575
595
|
}
|
576
596
|
|
597
|
+
|
598
|
+
function _getAndVerifyActivePool()
|
599
|
+
internal
|
600
|
+
virtual
|
601
|
+
view
|
602
|
+
returns (
|
603
|
+
NftId poolNftId,
|
604
|
+
IInstance instance
|
605
|
+
)
|
606
|
+
{
|
607
|
+
return PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
608
|
+
}
|
609
|
+
|
610
|
+
|
577
611
|
function _getDomain() internal pure override returns(ObjectType) {
|
578
612
|
return POOL();
|
579
613
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
5
|
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {PoolService} from "./PoolService.sol";
|
7
7
|
|
@@ -12,17 +12,19 @@ contract PoolServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with pool service implementation
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
+
address registry,
|
15
16
|
bytes32 salt
|
16
17
|
)
|
17
18
|
{
|
18
19
|
PoolService poolSrv = new PoolService{salt: salt}();
|
19
|
-
bytes memory data = abi.encode(authority);
|
20
|
-
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
21
23
|
address(poolSrv),
|
22
24
|
data,
|
23
25
|
salt);
|
24
26
|
|
25
|
-
_poolService = PoolService(address(
|
27
|
+
_poolService = PoolService(address(versionable));
|
26
28
|
}
|
27
29
|
|
28
30
|
//--- view functions ----------------------------------------------------//
|
@@ -38,13 +38,14 @@ contract ApplicationService is
|
|
38
38
|
)
|
39
39
|
internal
|
40
40
|
virtual override
|
41
|
-
|
41
|
+
initializer()
|
42
42
|
{
|
43
43
|
(
|
44
|
-
address authority
|
45
|
-
|
44
|
+
address authority,
|
45
|
+
address registry
|
46
|
+
) = abi.decode(data, (address, address));
|
46
47
|
|
47
|
-
__Service_init(authority, owner);
|
48
|
+
__Service_init(authority, registry, owner);
|
48
49
|
|
49
50
|
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
50
51
|
_pricingService = IPricingService(_getServiceAddress(PRICE()));
|
@@ -53,9 +54,7 @@ contract ApplicationService is
|
|
53
54
|
_registerInterface(type(IApplicationService).interfaceId);
|
54
55
|
}
|
55
56
|
|
56
|
-
|
57
|
-
// checkBundle() is faster then checking with registry but first need to know poolNftId
|
58
|
-
// check pool, get its nftIdf and instance -> instacne.getBundleSet.checkBundle(bundsleNftId) ????
|
57
|
+
|
59
58
|
function _checkLinkedApplicationParameters(
|
60
59
|
InstanceReader instanceReader,
|
61
60
|
NftId productNftId,
|
@@ -109,11 +108,12 @@ contract ApplicationService is
|
|
109
108
|
NftIdLib.zero(),
|
110
109
|
productNftId,
|
111
110
|
POLICY(),
|
112
|
-
getRelease(),
|
113
111
|
false, // intercepting property for policies is defined on product
|
114
|
-
address(0)
|
112
|
+
address(0),
|
113
|
+
applicationOwner,
|
114
|
+
"");
|
115
115
|
|
116
|
-
applicationNftId = _registryService.registerPolicy(objectInfo
|
116
|
+
applicationNftId = _registryService.registerPolicy(objectInfo);
|
117
117
|
}
|
118
118
|
|
119
119
|
|
@@ -155,7 +155,7 @@ contract ApplicationService is
|
|
155
155
|
{
|
156
156
|
_checkNftType(bundleNftId, BUNDLE());
|
157
157
|
|
158
|
-
(NftId productNftId, IInstance instance) =
|
158
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveProduct();
|
159
159
|
|
160
160
|
// check if provided references are valid and linked to calling product contract
|
161
161
|
InstanceReader instanceReader = instance.getInstanceReader();
|
@@ -290,15 +290,36 @@ contract ApplicationService is
|
|
290
290
|
restricted()
|
291
291
|
nonReentrant()
|
292
292
|
{
|
293
|
-
(,
|
294
|
-
applicationNftId, getRelease());
|
293
|
+
_checkNftType(applicationNftId, POLICY());
|
295
294
|
|
295
|
+
(, IInstance instance) = _getAndVerifyActiveProduct();
|
296
296
|
instance.getProductStore().updateApplicationState(applicationNftId, REVOKED());
|
297
297
|
emit LogApplicationServiceApplicationRevoked(applicationNftId);
|
298
298
|
}
|
299
299
|
|
300
300
|
// internal functions
|
301
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
|
+
|
302
323
|
|
303
324
|
function _getDomain() internal pure override returns(ObjectType) {
|
304
325
|
return APPLICATION();
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
5
|
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {ApplicationService} from "./ApplicationService.sol";
|
7
7
|
|
@@ -12,17 +12,19 @@ contract ApplicationServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with service implementation
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
+
address registry,
|
15
16
|
bytes32 salt
|
16
17
|
)
|
17
18
|
{
|
18
19
|
ApplicationService svc = new ApplicationService{salt: salt}();
|
19
|
-
bytes memory data = abi.encode(authority);
|
20
|
-
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
21
23
|
address(svc),
|
22
24
|
data,
|
23
25
|
salt);
|
24
26
|
|
25
|
-
_applicationService = ApplicationService(address(
|
27
|
+
_applicationService = ApplicationService(address(versionable));
|
26
28
|
}
|
27
29
|
|
28
30
|
//--- view functions ----------------------------------------------------//
|
@@ -24,6 +24,7 @@ abstract contract BasicProduct is
|
|
24
24
|
}
|
25
25
|
|
26
26
|
function _initializeBasicProduct(
|
27
|
+
address registry,
|
27
28
|
NftId instanceNftId,
|
28
29
|
string memory name,
|
29
30
|
IComponents.ProductInfo memory productInfo,
|
@@ -36,6 +37,7 @@ abstract contract BasicProduct is
|
|
36
37
|
onlyInitializing()
|
37
38
|
{
|
38
39
|
__Product_init(
|
40
|
+
registry,
|
39
41
|
instanceNftId,
|
40
42
|
name,
|
41
43
|
productInfo,
|
@@ -2,16 +2,15 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IAccess} from "../authorization/IAccess.sol";
|
5
|
-
import {
|
5
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
6
6
|
import {IProductComponent} from "./IProductComponent.sol";
|
7
7
|
|
8
8
|
import {Authorization} from "../authorization/Authorization.sol";
|
9
9
|
import {BasicProduct} from "./BasicProduct.sol";
|
10
|
-
import {COMPONENT, PRODUCT, POLICY} from "../type/ObjectType.sol";
|
10
|
+
import {COMPONENT, ORACLE, PRODUCT, POLICY} from "../type/ObjectType.sol";
|
11
11
|
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
12
|
-
import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
|
13
12
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
14
|
-
|
13
|
+
|
15
14
|
|
16
15
|
contract BasicProductAuthorization
|
17
16
|
is Authorization
|
@@ -20,7 +19,7 @@ contract BasicProductAuthorization
|
|
20
19
|
Authorization(
|
21
20
|
componentName,
|
22
21
|
PRODUCT(),
|
23
|
-
|
22
|
+
3,
|
24
23
|
COMMIT_HASH,
|
25
24
|
TargetType.Component,
|
26
25
|
true)
|
@@ -31,7 +30,8 @@ contract BasicProductAuthorization
|
|
31
30
|
virtual override
|
32
31
|
{
|
33
32
|
_authorizeServiceDomain(COMPONENT(), address(10));
|
34
|
-
_authorizeServiceDomain(
|
33
|
+
_authorizeServiceDomain(ORACLE(), address(11));
|
34
|
+
_authorizeServiceDomain(POLICY(), address(12));
|
35
35
|
}
|
36
36
|
|
37
37
|
function _setupTokenHandlerAuthorizations() internal virtual override {
|
@@ -58,7 +58,7 @@ contract BasicProductAuthorization
|
|
58
58
|
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
59
59
|
_authorize(functions, BasicProduct.setFees.selector, "setFees");
|
60
60
|
_authorize(functions, IProductComponent.registerComponent.selector, "registerComponent");
|
61
|
-
_authorize(functions,
|
61
|
+
_authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
|
62
62
|
}
|
63
63
|
}
|
64
64
|
|
@@ -39,16 +39,17 @@ contract ClaimService is
|
|
39
39
|
)
|
40
40
|
internal
|
41
41
|
virtual override
|
42
|
-
|
42
|
+
initializer()
|
43
43
|
{
|
44
44
|
(
|
45
|
-
address authority
|
46
|
-
|
45
|
+
address authority,
|
46
|
+
address registry
|
47
|
+
) = abi.decode(data, (address, address));
|
47
48
|
|
48
|
-
__Service_init(authority, owner);
|
49
|
+
__Service_init(authority, registry, owner);
|
49
50
|
|
50
|
-
_policyService = IPolicyService(
|
51
|
-
_poolService = IPoolService(
|
51
|
+
_policyService = IPolicyService(getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart()));
|
52
|
+
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
52
53
|
|
53
54
|
_registerInterface(type(IClaimService).interfaceId);
|
54
55
|
}
|
@@ -477,7 +478,7 @@ contract ClaimService is
|
|
477
478
|
uint24 payoutNo = claimInfo.payoutsCount + 1;
|
478
479
|
payoutId = PayoutIdLib.toPayoutId(claimId, payoutNo);
|
479
480
|
if (beneficiary == address(0)) {
|
480
|
-
beneficiary =
|
481
|
+
beneficiary = getRegistry().ownerOf(policyNftId);
|
481
482
|
}
|
482
483
|
|
483
484
|
instanceContracts.productStore.createPayout(
|
@@ -514,7 +515,7 @@ contract ClaimService is
|
|
514
515
|
IPolicy.PolicyInfo memory policyInfo
|
515
516
|
)
|
516
517
|
{
|
517
|
-
(productNftId, instance) =
|
518
|
+
(productNftId, instance) = _getAndVerifyActiveProduct();
|
518
519
|
instanceContracts.instanceReader = InstanceReader(instance.getInstanceReader());
|
519
520
|
instanceContracts.instanceStore = InstanceStore(instance.getInstanceStore());
|
520
521
|
instanceContracts.productStore = ProductStore(instance.getProductStore());
|
@@ -528,6 +529,29 @@ contract ClaimService is
|
|
528
529
|
}
|
529
530
|
}
|
530
531
|
|
532
|
+
|
533
|
+
function _getAndVerifyActiveProduct()
|
534
|
+
internal
|
535
|
+
view
|
536
|
+
returns (
|
537
|
+
NftId productNftId,
|
538
|
+
IInstance instance
|
539
|
+
)
|
540
|
+
{
|
541
|
+
(
|
542
|
+
IRegistry.ObjectInfo memory info,
|
543
|
+
address instanceAddress
|
544
|
+
) = ContractLib.getAndVerifyComponent(
|
545
|
+
getRegistry(),
|
546
|
+
msg.sender, // caller
|
547
|
+
PRODUCT(),
|
548
|
+
true); // isActive
|
549
|
+
|
550
|
+
// get component nft id and instance
|
551
|
+
productNftId = info.nftId;
|
552
|
+
instance = IInstance(instanceAddress);
|
553
|
+
}
|
554
|
+
|
531
555
|
function _verifyClaim(
|
532
556
|
InstanceReader instanceReader,
|
533
557
|
NftId policyNftId,
|
@@ -562,7 +586,7 @@ contract ClaimService is
|
|
562
586
|
{
|
563
587
|
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
564
588
|
if (instanceReader.getPoolInfo(poolNftId).isProcessingConfirmedClaims) {
|
565
|
-
address poolAddress =
|
589
|
+
address poolAddress = getRegistry().getObjectAddress(poolNftId);
|
566
590
|
IPoolComponent(poolAddress).processConfirmedClaim(policyNftId, claimId, amount);
|
567
591
|
}
|
568
592
|
}
|
@@ -587,7 +611,7 @@ contract ClaimService is
|
|
587
611
|
view
|
588
612
|
returns (IPolicyHolder policyHolder)
|
589
613
|
{
|
590
|
-
address policyHolderAddress =
|
614
|
+
address policyHolderAddress = getRegistry().ownerOf(policyNftId);
|
591
615
|
policyHolder = IPolicyHolder(policyHolderAddress);
|
592
616
|
|
593
617
|
if (!ContractLib.isPolicyHolder(policyHolderAddress)) {
|