@etherisc/gif-next 3.0.0-f90c901-018 → 3.0.0-fb87f3a-607
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 +10 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +83 -164
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +115 -113
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +46 -91
- 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 +84 -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 +224 -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 +117 -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 +799 -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/FlightNft.sol/FlightNft.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1353 -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 +2289 -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/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -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/BaseStore.sol/BaseStore.json +50 -0
- 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/IBaseStore.sol/IBaseStore.json +50 -0
- 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 +105 -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 +238 -77
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +136 -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 +82 -32
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +68 -18
- 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 +129 -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 +44 -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 +98 -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 +177 -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 +76 -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 +139 -173
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
- 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/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +62 -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 +102 -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 +345 -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 +251 -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 +81 -101
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +48 -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 +134 -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 +77 -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 +22 -33
- package/contracts/accounting/AccountingServiceManager.sol +6 -4
- package/contracts/accounting/IAccountingService.sol +7 -8
- package/contracts/authorization/AccessAdmin.sol +24 -47
- package/contracts/authorization/AccessAdminLib.sol +29 -15
- package/contracts/authorization/AccessManagerCloneable.sol +51 -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 +25 -27
- package/contracts/distribution/DistributionServiceManager.sol +6 -4
- package/contracts/distribution/IDistributionService.sol +4 -3
- package/contracts/examples/fire/FirePool.sol +4 -0
- package/contracts/examples/fire/FireProduct.sol +4 -0
- package/contracts/examples/flight/FlightLib.sol +337 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +226 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +687 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
- package/contracts/examples/flight/FlightProductManager.sol +49 -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/BaseStore.sol +4 -0
- package/contracts/instance/IBaseStore.sol +8 -0
- package/contracts/instance/IInstance.sol +1 -1
- package/contracts/instance/IInstanceService.sol +2 -0
- 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 +56 -22
- package/contracts/instance/InstanceService.sol +24 -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 +3 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
- package/contracts/oracle/IOracleService.sol +16 -12
- package/contracts/oracle/Oracle.sol +6 -5
- 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 +20 -26
- package/contracts/pool/BundleServiceManager.sol +7 -5
- package/contracts/pool/IBundleService.sol +1 -1
- 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 +2 -1
- package/contracts/product/PolicyService.sol +58 -45
- package/contracts/product/PolicyServiceLib.sol +5 -3
- 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/ChainNft.sol +1 -1
- 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 +135 -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 +15 -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 +4 -2
- package/contracts/staking/IStakingService.sol +1 -1
- package/contracts/staking/Staking.sol +34 -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 +14 -17
- 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
@@ -18,7 +18,6 @@ import {ObjectType, BUNDLE, POOL} from "../type/ObjectType.sol";
|
|
18
18
|
import {PayoutId} from "../type/PayoutId.sol";
|
19
19
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
20
20
|
import {UFixed} from "../type/UFixed.sol";
|
21
|
-
import {VersionPart} from "../type/Version.sol";
|
22
21
|
|
23
22
|
library PoolLib {
|
24
23
|
|
@@ -77,6 +76,7 @@ library PoolLib {
|
|
77
76
|
|
78
77
|
|
79
78
|
function calculateStakingAmounts(
|
79
|
+
IRegistry registry,
|
80
80
|
InstanceReader instanceReader,
|
81
81
|
NftId poolNftId,
|
82
82
|
Amount stakingAmount
|
@@ -88,7 +88,7 @@ library PoolLib {
|
|
88
88
|
Amount netStakingAmount
|
89
89
|
)
|
90
90
|
{
|
91
|
-
NftId productNftId =
|
91
|
+
NftId productNftId = registry.getParentNftId(poolNftId);
|
92
92
|
Fee memory stakingFee = instanceReader.getFeeInfo(productNftId).stakingFee;
|
93
93
|
(
|
94
94
|
feeAmount,
|
@@ -100,6 +100,7 @@ library PoolLib {
|
|
100
100
|
|
101
101
|
|
102
102
|
function calculatePayoutAmounts(
|
103
|
+
IRegistry registry,
|
103
104
|
InstanceReader instanceReader,
|
104
105
|
NftId productNftId,
|
105
106
|
NftId policyNftId,
|
@@ -120,7 +121,7 @@ library PoolLib {
|
|
120
121
|
netPayoutAmount = payoutAmount;
|
121
122
|
|
122
123
|
if (payoutBeneficiary == address(0)) {
|
123
|
-
beneficiary =
|
124
|
+
beneficiary = registry.ownerOf(policyNftId);
|
124
125
|
} else {
|
125
126
|
beneficiary = payoutBeneficiary;
|
126
127
|
}
|
@@ -135,13 +136,14 @@ library PoolLib {
|
|
135
136
|
|
136
137
|
|
137
138
|
function getPolicyHolder(
|
139
|
+
IRegistry registry,
|
138
140
|
NftId policyNftId
|
139
141
|
)
|
140
142
|
internal
|
141
143
|
view
|
142
144
|
returns (IPolicyHolder policyHolder)
|
143
145
|
{
|
144
|
-
address policyHolderAddress =
|
146
|
+
address policyHolderAddress = registry.ownerOf(policyNftId);
|
145
147
|
policyHolder = IPolicyHolder(policyHolderAddress);
|
146
148
|
|
147
149
|
if (!ContractLib.isPolicyHolder(policyHolderAddress)) {
|
@@ -149,7 +151,99 @@ library PoolLib {
|
|
149
151
|
}
|
150
152
|
}
|
151
153
|
|
154
|
+
|
155
|
+
function checkAndGetPoolInfo(
|
156
|
+
IRegistry registry,
|
157
|
+
address sender,
|
158
|
+
NftId bundleNftId
|
159
|
+
)
|
160
|
+
public
|
161
|
+
view
|
162
|
+
returns (
|
163
|
+
InstanceReader instanceReader,
|
164
|
+
InstanceStore instanceStore,
|
165
|
+
NftId instanceNftId,
|
166
|
+
NftId poolNftId,
|
167
|
+
IComponents.PoolInfo memory poolInfo
|
168
|
+
)
|
169
|
+
{
|
170
|
+
checkNftType(registry, bundleNftId, BUNDLE());
|
171
|
+
|
172
|
+
IInstance instance;
|
173
|
+
(poolNftId, instance) = getAndVerifyActivePool(registry, sender);
|
174
|
+
instanceReader = instance.getInstanceReader();
|
175
|
+
instanceStore = instance.getInstanceStore();
|
176
|
+
instanceNftId = instance.getNftId();
|
177
|
+
poolInfo = instanceReader.getPoolInfo(poolNftId);
|
178
|
+
|
179
|
+
if (registry.getParentNftId(bundleNftId) != poolNftId) {
|
180
|
+
revert IPoolService.ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
181
|
+
}
|
182
|
+
}
|
183
|
+
|
184
|
+
|
185
|
+
function getAndVerifyActivePool(
|
186
|
+
IRegistry registry,
|
187
|
+
address sender
|
188
|
+
)
|
189
|
+
public
|
190
|
+
view
|
191
|
+
returns (
|
192
|
+
NftId poolNftId,
|
193
|
+
IInstance instance
|
194
|
+
)
|
195
|
+
{
|
196
|
+
(
|
197
|
+
IRegistry.ObjectInfo memory info,
|
198
|
+
address instanceAddress
|
199
|
+
) = ContractLib.getAndVerifyComponent(
|
200
|
+
registry,
|
201
|
+
sender,
|
202
|
+
POOL(),
|
203
|
+
true); // only active pools
|
204
|
+
|
205
|
+
poolNftId = info.nftId;
|
206
|
+
instance = IInstance(instanceAddress);
|
207
|
+
}
|
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
|
+
|
235
|
+
function checkNftType(
|
236
|
+
IRegistry registry,
|
237
|
+
NftId nftId,
|
238
|
+
ObjectType expectedObjectType
|
239
|
+
) internal view {
|
240
|
+
if(!registry.isObjectType(nftId, expectedObjectType)) {
|
241
|
+
revert INftOwnable.ErrorNftOwnableInvalidType(nftId, expectedObjectType);
|
242
|
+
}
|
243
|
+
}
|
244
|
+
|
152
245
|
function transferTokenAndNotifyPolicyHolder(
|
246
|
+
IRegistry registry,
|
153
247
|
InstanceReader instanceReader,
|
154
248
|
TokenHandler poolTokenHandler,
|
155
249
|
NftId productNftId,
|
@@ -171,6 +265,7 @@ library PoolLib {
|
|
171
265
|
processingFeeAmount,
|
172
266
|
beneficiary
|
173
267
|
) = calculatePayoutAmounts(
|
268
|
+
registry,
|
174
269
|
instanceReader,
|
175
270
|
productNftId,
|
176
271
|
policyNftId,
|
@@ -192,6 +287,7 @@ library PoolLib {
|
|
192
287
|
|
193
288
|
// callback to policy holder if applicable
|
194
289
|
policyHolderPayoutExecuted(
|
290
|
+
registry,
|
195
291
|
policyNftId,
|
196
292
|
payoutId,
|
197
293
|
beneficiary,
|
@@ -199,6 +295,7 @@ library PoolLib {
|
|
199
295
|
}
|
200
296
|
|
201
297
|
function policyHolderPayoutExecuted(
|
298
|
+
IRegistry registry,
|
202
299
|
NftId policyNftId,
|
203
300
|
PayoutId payoutId,
|
204
301
|
address beneficiary,
|
@@ -206,7 +303,7 @@ library PoolLib {
|
|
206
303
|
)
|
207
304
|
private
|
208
305
|
{
|
209
|
-
IPolicyHolder policyHolder = getPolicyHolder(policyNftId);
|
306
|
+
IPolicyHolder policyHolder = getPolicyHolder(registry, policyNftId);
|
210
307
|
if(address(policyHolder) != address(0)) {
|
211
308
|
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
212
309
|
}
|
@@ -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, unstakedAmount, feeAmount);
|
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 ----------------------------------------------------//
|