@etherisc/gif-next 0.0.2-e9c5694-914 → 0.0.2-ea09fbf-195
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 +27 -6
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +103 -55
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +37 -5
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +106 -186
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -89
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +154 -108
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +75 -53
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -58
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +50 -3
- 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 +101 -164
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +49 -17
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +258 -290
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +17 -17
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +137 -129
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +90 -126
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +225 -162
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +630 -317
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +94 -47
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +77 -20
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +131 -56
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +239 -92
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +40 -27
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +478 -197
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +104 -74
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -27
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +410 -370
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelper.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelper.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +74 -154
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +44 -58
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +58 -90
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +112 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +69 -27
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +57 -104
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +49 -17
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +128 -226
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +60 -74
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +46 -60
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -97
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +104 -78
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -128
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +175 -174
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +64 -38
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +105 -63
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +163 -175
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +251 -144
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +79 -57
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +143 -3
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +65 -22
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +150 -144
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +158 -140
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +73 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +99 -76
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -38
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +163 -175
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +88 -73
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +54 -24
- 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 +31 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- 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 +69 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +188 -213
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +42 -20
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
- 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 +310 -52
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +57 -75
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +250 -421
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +71 -61
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
- 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 +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- 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/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +44 -44
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +134 -248
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +44 -58
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
- 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 -89
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/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 +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +62 -80
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +27 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +3 -3
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +134 -173
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +58 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +73 -50
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +46 -24
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
- 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 +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +62 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +18 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +136 -73
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/IAccessAdmin.sol +6 -3
- package/contracts/distribution/BasicDistribution.sol +6 -6
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +32 -30
- package/contracts/distribution/DistributionService.sol +34 -32
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/FirePool.sol +22 -5
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -0
- package/contracts/examples/fire/FireProduct.sol +31 -8
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +33 -2
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +40 -21
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +8 -8
- package/contracts/instance/IInstanceService.sol +9 -9
- package/contracts/instance/Instance.sol +20 -17
- package/contracts/instance/InstanceAdmin.sol +96 -47
- package/contracts/instance/InstanceAuthorizationV3.sol +45 -14
- package/contracts/instance/InstanceReader.sol +108 -7
- package/contracts/instance/InstanceService.sol +73 -82
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelper.sol +30 -0
- package/contracts/instance/module/IComponents.sol +4 -4
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +92 -73
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +24 -3
- package/contracts/pool/BasicPoolAuthorization.sol +12 -1
- package/contracts/pool/BundleService.sol +26 -94
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +2 -24
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +12 -26
- package/contracts/pool/Pool.sol +112 -102
- package/contracts/pool/PoolService.sol +171 -100
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +15 -15
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +9 -11
- package/contracts/product/BasicProductAuthorization.sol +1 -2
- package/contracts/product/ClaimService.sol +147 -51
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +13 -0
- package/contracts/product/IPolicyService.sol +17 -7
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/PolicyService.sol +244 -199
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +23 -19
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +47 -39
- package/contracts/product/RiskService.sol +78 -23
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +8 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +12 -3
- package/contracts/registry/RegistryAdmin.sol +121 -225
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +129 -119
- package/contracts/registry/ServiceAuthorizationV3.sol +88 -40
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +59 -98
- package/contracts/shared/ComponentService.sol +206 -251
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +15 -13
- package/contracts/shared/ContractLib.sol +223 -9
- package/contracts/shared/IComponent.sol +4 -17
- package/contracts/shared/IComponentService.sol +20 -24
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +2 -18
- package/contracts/shared/NftOwnable.sol +4 -4
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +44 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +316 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/Staking.sol +62 -33
- package/contracts/staking/StakingService.sol +41 -9
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +32 -18
- package/contracts/type/RiskId.sol +23 -6
- package/contracts/type/RoleId.sol +5 -2
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +9 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +3 -3
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
@@ -1,36 +1,39 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
4
5
|
import {IBundle} from "../instance/module/IBundle.sol";
|
5
6
|
import {IBundleService} from "./IBundleService.sol";
|
6
7
|
import {IComponents} from "../instance/module/IComponents.sol";
|
7
8
|
import {IComponentService} from "../shared/IComponentService.sol";
|
8
9
|
import {IInstance} from "../instance/IInstance.sol";
|
9
10
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
10
|
-
import {
|
11
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
11
12
|
import {IPoolService} from "./IPoolService.sol";
|
13
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
12
14
|
import {IRegistry} from "../registry/IRegistry.sol";
|
13
15
|
import {IStaking} from "../staking/IStaking.sol";
|
14
16
|
|
15
17
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
16
18
|
import {ClaimId} from "../type/ClaimId.sol";
|
19
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
17
20
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
18
21
|
import {NftId} from "../type/NftId.sol";
|
19
|
-
import {ObjectType, POOL, BUNDLE, PRODUCT, POLICY, COMPONENT} from "../type/ObjectType.sol";
|
22
|
+
import {ObjectType, ACCOUNTING, POOL, BUNDLE, PRODUCT, POLICY, COMPONENT} from "../type/ObjectType.sol";
|
20
23
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
21
24
|
import {KEEP_STATE} from "../type/StateId.sol";
|
22
|
-
import {Seconds} from "../type/Seconds.sol";
|
23
25
|
import {UFixed} from "../type/UFixed.sol";
|
24
|
-
import {
|
26
|
+
import {Service} from "../shared/Service.sol";
|
25
27
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
26
28
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
27
29
|
|
28
30
|
string constant POOL_SERVICE_NAME = "PoolService";
|
29
31
|
|
30
32
|
contract PoolService is
|
31
|
-
|
33
|
+
Service,
|
32
34
|
IPoolService
|
33
35
|
{
|
36
|
+
IAccountingService private _accountingService;
|
34
37
|
IBundleService internal _bundleService;
|
35
38
|
IComponentService internal _componentService;
|
36
39
|
IStaking private _staking;
|
@@ -44,12 +47,13 @@ contract PoolService is
|
|
44
47
|
initializer()
|
45
48
|
{
|
46
49
|
(
|
47
|
-
address
|
48
|
-
address
|
50
|
+
address authority,
|
51
|
+
address registry
|
49
52
|
) = abi.decode(data, (address, address));
|
50
53
|
|
51
|
-
|
54
|
+
__Service_init(authority, registry, owner);
|
52
55
|
|
56
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
53
57
|
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
54
58
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
55
59
|
_staking = IStaking(getRegistry().getStakingAddress());
|
@@ -63,7 +67,7 @@ contract PoolService is
|
|
63
67
|
external
|
64
68
|
virtual
|
65
69
|
{
|
66
|
-
(NftId poolNftId
|
70
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
67
71
|
InstanceReader instanceReader = instance.getInstanceReader();
|
68
72
|
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
69
73
|
|
@@ -75,47 +79,20 @@ contract PoolService is
|
|
75
79
|
}
|
76
80
|
|
77
81
|
|
78
|
-
/// @inheritdoc IPoolService
|
79
|
-
function createBundle(
|
80
|
-
address bundleOwner, // initial bundle owner
|
81
|
-
Fee memory fee, // fees deducted from premium that go to bundle owner
|
82
|
-
Seconds lifetime, // initial duration for which new policies are covered
|
83
|
-
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
84
|
-
)
|
85
|
-
external
|
86
|
-
virtual
|
87
|
-
returns(NftId bundleNftId)
|
88
|
-
{
|
89
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
90
|
-
|
91
|
-
// create the empty bundle
|
92
|
-
bundleNftId = _bundleService.create(
|
93
|
-
instance,
|
94
|
-
poolNftId,
|
95
|
-
bundleOwner,
|
96
|
-
fee,
|
97
|
-
AmountLib.zero(),
|
98
|
-
lifetime,
|
99
|
-
filter);
|
100
|
-
|
101
|
-
emit LogPoolServiceBundleCreated(instance.getNftId(), poolNftId, bundleNftId);
|
102
|
-
}
|
103
|
-
|
104
|
-
|
105
82
|
function closeBundle(NftId bundleNftId)
|
106
83
|
external
|
107
84
|
virtual
|
108
85
|
{
|
109
86
|
_checkNftType(bundleNftId, BUNDLE());
|
110
87
|
|
111
|
-
(NftId poolNftId
|
88
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
112
89
|
|
113
90
|
// TODO get performance fee for pool (#477)
|
114
91
|
|
115
92
|
// releasing collateral in bundle
|
116
93
|
(Amount unstakedAmount, Amount feeAmount) = _bundleService.close(instance, bundleNftId);
|
117
94
|
|
118
|
-
|
95
|
+
_accountingService.decreasePoolBalance(
|
119
96
|
instance.getInstanceStore(),
|
120
97
|
poolNftId,
|
121
98
|
unstakedAmount + feeAmount,
|
@@ -126,7 +103,7 @@ contract PoolService is
|
|
126
103
|
if ((unstakedAmount + feeAmount).gtz()){
|
127
104
|
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
|
128
105
|
poolComponentInfo.tokenHandler.distributeTokens(
|
129
|
-
poolComponentInfo.
|
106
|
+
poolComponentInfo.tokenHandler.getWallet(),
|
130
107
|
getRegistry().ownerOf(bundleNftId),
|
131
108
|
unstakedAmount + feeAmount);
|
132
109
|
}
|
@@ -144,9 +121,9 @@ contract PoolService is
|
|
144
121
|
{
|
145
122
|
_checkNftType(policyNftId, POLICY());
|
146
123
|
|
147
|
-
(NftId poolNftId
|
124
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
148
125
|
InstanceReader instanceReader = instance.getInstanceReader();
|
149
|
-
NftId productNftId =
|
126
|
+
NftId productNftId = getRegistry().getObjectInfo(poolNftId).parentNftId;
|
150
127
|
|
151
128
|
// check policy matches with calling pool
|
152
129
|
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
@@ -176,7 +153,7 @@ contract PoolService is
|
|
176
153
|
{
|
177
154
|
_checkNftType(bundleNftId, BUNDLE());
|
178
155
|
|
179
|
-
(NftId poolNftId
|
156
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
180
157
|
InstanceReader instanceReader = instance.getInstanceReader();
|
181
158
|
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
182
159
|
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
@@ -198,7 +175,7 @@ contract PoolService is
|
|
198
175
|
|
199
176
|
{
|
200
177
|
NftId productNftId = registry.getObjectInfo(poolNftId).parentNftId;
|
201
|
-
Fee memory stakingFee = instanceReader.
|
178
|
+
Fee memory stakingFee = instanceReader.getFeeInfo(productNftId).stakingFee;
|
202
179
|
(
|
203
180
|
feeAmount,
|
204
181
|
netAmount
|
@@ -207,8 +184,8 @@ contract PoolService is
|
|
207
184
|
amount);
|
208
185
|
}
|
209
186
|
|
210
|
-
// do all the
|
211
|
-
|
187
|
+
// do all the book keeping
|
188
|
+
_accountingService.increasePoolBalance(
|
212
189
|
instance.getInstanceStore(),
|
213
190
|
poolNftId,
|
214
191
|
netAmount,
|
@@ -216,18 +193,22 @@ contract PoolService is
|
|
216
193
|
|
217
194
|
_bundleService.stake(instance, bundleNftId, netAmount);
|
218
195
|
|
219
|
-
// collect tokens from bundle owner
|
220
|
-
address bundleOwner = registry.ownerOf(bundleNftId);
|
221
196
|
emit LogPoolServiceBundleStaked(instance.getNftId(), poolNftId, bundleNftId, amount, netAmount);
|
222
197
|
|
223
|
-
//
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
bundleOwner
|
228
|
-
|
198
|
+
// only collect staking amount when pool is not externally managed
|
199
|
+
if (!poolInfo.isExternallyManaged) {
|
200
|
+
|
201
|
+
// collect tokens from bundle owner
|
202
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
203
|
+
_collectStakingAmount(
|
204
|
+
instanceReader,
|
205
|
+
poolNftId,
|
206
|
+
bundleOwner,
|
207
|
+
amount);
|
208
|
+
}
|
229
209
|
}
|
230
210
|
|
211
|
+
|
231
212
|
/// @inheritdoc IPoolService
|
232
213
|
function unstake(NftId bundleNftId, Amount amount)
|
233
214
|
external
|
@@ -237,11 +218,11 @@ contract PoolService is
|
|
237
218
|
{
|
238
219
|
_checkNftType(bundleNftId, BUNDLE());
|
239
220
|
|
240
|
-
(NftId poolNftId
|
221
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
241
222
|
InstanceReader instanceReader = instance.getInstanceReader();
|
242
223
|
InstanceStore instanceStore = instance.getInstanceStore();
|
243
224
|
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
244
|
-
|
225
|
+
|
245
226
|
if (bundleInfo.poolNftId != poolNftId) {
|
246
227
|
revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
247
228
|
}
|
@@ -253,50 +234,86 @@ contract PoolService is
|
|
253
234
|
// if amount was max, this was set to the available amount
|
254
235
|
|
255
236
|
// TODO: handle performance fees (issue #477)
|
237
|
+
netAmount = unstakedAmount;
|
256
238
|
|
257
239
|
// update pool bookkeeping - performance fees stay in the pool, but as fees
|
258
|
-
|
240
|
+
_accountingService.decreasePoolBalance(
|
259
241
|
instanceStore,
|
260
242
|
poolNftId,
|
261
243
|
unstakedAmount,
|
262
244
|
AmountLib.zero());
|
263
245
|
|
264
|
-
IComponents.ComponentInfo memory poolComponentInfo = instanceReader.getComponentInfo(poolNftId);
|
265
246
|
|
266
|
-
|
267
|
-
address owner = getRegistry().ownerOf(bundleNftId);
|
268
|
-
emit LogPoolServiceBundleUnstaked(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount);
|
269
|
-
poolComponentInfo.tokenHandler.distributeTokens(
|
270
|
-
poolComponentInfo.wallet,
|
271
|
-
owner,
|
272
|
-
unstakedAmount);
|
247
|
+
emit LogPoolServiceBundleUnstaked(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount, netAmount);
|
273
248
|
|
274
|
-
|
249
|
+
// only distribute staking amount when pool is not externally managed
|
250
|
+
if (!instanceReader.getPoolInfo(poolNftId).isExternallyManaged) {
|
251
|
+
|
252
|
+
// transfer amount to bundle owner
|
253
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
254
|
+
_distributeUnstakingAmount(
|
255
|
+
instanceReader,
|
256
|
+
poolNftId,
|
257
|
+
bundleOwner,
|
258
|
+
netAmount);
|
259
|
+
}
|
275
260
|
}
|
276
261
|
|
277
262
|
|
278
|
-
function fundPoolWallet(
|
263
|
+
function fundPoolWallet(Amount amount)
|
279
264
|
external
|
280
265
|
virtual
|
281
|
-
restricted()
|
266
|
+
// restricted()
|
282
267
|
{
|
283
|
-
|
284
|
-
|
285
|
-
|
268
|
+
(
|
269
|
+
NftId poolNftId,
|
270
|
+
IInstance instance
|
271
|
+
) = _getAndVerifyActivePool();
|
272
|
+
|
273
|
+
// check that pool is externally managed
|
274
|
+
InstanceReader reader = instance.getInstanceReader();
|
275
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
276
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
277
|
+
}
|
278
|
+
|
279
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
280
|
+
emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
|
281
|
+
|
282
|
+
_collectStakingAmount(
|
283
|
+
reader,
|
284
|
+
poolNftId,
|
285
|
+
poolOwner,
|
286
|
+
amount);
|
286
287
|
}
|
287
288
|
|
288
289
|
|
289
|
-
function defundPoolWallet(
|
290
|
+
function defundPoolWallet(Amount amount)
|
290
291
|
external
|
291
292
|
virtual
|
292
|
-
restricted()
|
293
|
+
// restricted()
|
293
294
|
{
|
294
|
-
|
295
|
+
(
|
296
|
+
NftId poolNftId,
|
297
|
+
IInstance instance
|
298
|
+
) = _getAndVerifyActivePool();
|
299
|
+
|
300
|
+
// check that pool is externally managed
|
301
|
+
InstanceReader reader = instance.getInstanceReader();
|
302
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
303
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
304
|
+
}
|
305
|
+
|
306
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
307
|
+
emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
|
295
308
|
|
296
|
-
|
297
|
-
|
309
|
+
_distributeUnstakingAmount(
|
310
|
+
reader,
|
311
|
+
poolNftId,
|
312
|
+
poolOwner,
|
313
|
+
amount);
|
298
314
|
}
|
299
315
|
|
316
|
+
|
300
317
|
function processSale(
|
301
318
|
NftId bundleNftId,
|
302
319
|
IPolicy.PremiumInfo memory premium
|
@@ -308,24 +325,24 @@ contract PoolService is
|
|
308
325
|
_checkNftType(bundleNftId, BUNDLE());
|
309
326
|
|
310
327
|
IRegistry registry = getRegistry();
|
311
|
-
|
312
|
-
|
313
|
-
IInstance instance =
|
328
|
+
NftId poolNftId = registry.getObjectInfo(bundleNftId).parentNftId;
|
329
|
+
(, address instanceAddress) = ContractLib.getInfoAndInstance(registry, poolNftId, true);
|
330
|
+
IInstance instance = IInstance(instanceAddress);
|
314
331
|
|
315
332
|
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
316
333
|
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
317
334
|
Amount bundleNetAmount = premium.netPremiumAmount;
|
318
335
|
|
319
336
|
InstanceStore instanceStore = instance.getInstanceStore();
|
320
|
-
|
337
|
+
_accountingService.increasePoolBalance(
|
321
338
|
instanceStore,
|
322
|
-
|
339
|
+
poolNftId,
|
323
340
|
bundleNetAmount + bundleFeeAmount,
|
324
341
|
poolFeeAmount);
|
325
342
|
|
326
|
-
|
343
|
+
_accountingService.increaseBundleBalanceForPool(
|
327
344
|
instanceStore,
|
328
|
-
|
345
|
+
bundleNftId,
|
329
346
|
bundleNetAmount,
|
330
347
|
bundleFeeAmount);
|
331
348
|
}
|
@@ -351,9 +368,13 @@ contract PoolService is
|
|
351
368
|
_checkNftType(applicationNftId, POLICY());
|
352
369
|
_checkNftType(bundleNftId, BUNDLE());
|
353
370
|
|
371
|
+
NftId poolNftId;
|
372
|
+
bool poolIsVerifyingApplications;
|
354
373
|
(
|
374
|
+
poolNftId,
|
355
375
|
totalCollateralAmount,
|
356
|
-
localCollateralAmount
|
376
|
+
localCollateralAmount,
|
377
|
+
poolIsVerifyingApplications
|
357
378
|
) = calculateRequiredCollateral(
|
358
379
|
instance.getInstanceReader(),
|
359
380
|
productNftId,
|
@@ -371,6 +392,21 @@ contract PoolService is
|
|
371
392
|
instance.getNftId(),
|
372
393
|
token,
|
373
394
|
totalCollateralAmount);
|
395
|
+
|
396
|
+
// pool callback when required
|
397
|
+
if (poolIsVerifyingApplications) {
|
398
|
+
IPoolComponent pool = IPoolComponent(
|
399
|
+
getRegistry().getObjectAddress(poolNftId));
|
400
|
+
|
401
|
+
pool.verifyApplication(
|
402
|
+
applicationNftId,
|
403
|
+
bundleNftId,
|
404
|
+
totalCollateralAmount);
|
405
|
+
|
406
|
+
// TODO add logging
|
407
|
+
}
|
408
|
+
|
409
|
+
// TODO add logging
|
374
410
|
}
|
375
411
|
|
376
412
|
function processPayout(
|
@@ -390,13 +426,13 @@ contract PoolService is
|
|
390
426
|
NftId poolNftId = getRegistry().getObjectInfo(bundleNftId).parentNftId;
|
391
427
|
InstanceStore instanceStore = instance.getInstanceStore();
|
392
428
|
|
393
|
-
|
429
|
+
_accountingService.decreasePoolBalance(
|
394
430
|
instanceStore,
|
395
431
|
poolNftId,
|
396
432
|
payoutAmount,
|
397
433
|
AmountLib.zero());
|
398
434
|
|
399
|
-
|
435
|
+
_accountingService.decreaseBundleBalanceForPool(
|
400
436
|
instanceStore,
|
401
437
|
bundleNftId,
|
402
438
|
payoutAmount,
|
@@ -438,10 +474,6 @@ contract PoolService is
|
|
438
474
|
policyInfo.bundleNftId,
|
439
475
|
remainingCollateralAmount);
|
440
476
|
|
441
|
-
_bundleService.unlinkPolicy(
|
442
|
-
instance,
|
443
|
-
policyNftId);
|
444
|
-
|
445
477
|
// update value locked with staking service
|
446
478
|
_staking.decreaseTotalValueLocked(
|
447
479
|
instance.getNftId(),
|
@@ -458,14 +490,17 @@ contract PoolService is
|
|
458
490
|
public
|
459
491
|
view
|
460
492
|
returns(
|
493
|
+
NftId poolNftId,
|
461
494
|
Amount totalCollateralAmount,
|
462
|
-
Amount localCollateralAmount
|
495
|
+
Amount localCollateralAmount,
|
496
|
+
bool poolIsVerifyingApplications
|
463
497
|
)
|
464
498
|
{
|
465
499
|
_checkNftType(productNftId, PRODUCT());
|
466
500
|
|
467
|
-
|
501
|
+
poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
468
502
|
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
503
|
+
poolIsVerifyingApplications = poolInfo.isVerifyingApplications;
|
469
504
|
|
470
505
|
(
|
471
506
|
totalCollateralAmount,
|
@@ -519,25 +554,61 @@ contract PoolService is
|
|
519
554
|
}
|
520
555
|
|
521
556
|
|
522
|
-
/// @dev transfers the specified amount from the
|
557
|
+
/// @dev transfers the specified amount from the "from account" to the pool's wallet
|
523
558
|
function _collectStakingAmount(
|
524
|
-
InstanceReader
|
559
|
+
InstanceReader reader,
|
525
560
|
NftId poolNftId,
|
526
|
-
address
|
561
|
+
address from,
|
527
562
|
Amount amount
|
528
563
|
)
|
529
564
|
internal
|
530
565
|
{
|
566
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
567
|
+
info.tokenHandler.collectTokens(
|
568
|
+
from,
|
569
|
+
amount);
|
570
|
+
}
|
531
571
|
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
572
|
+
/// @dev distributes the specified amount from the pool's wallet to the "to account"
|
573
|
+
function _distributeUnstakingAmount(
|
574
|
+
InstanceReader reader,
|
575
|
+
NftId poolNftId,
|
576
|
+
address to,
|
577
|
+
Amount amount
|
578
|
+
)
|
579
|
+
internal
|
580
|
+
{
|
581
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
582
|
+
info.tokenHandler.distributeTokens(
|
583
|
+
info.tokenHandler.getWallet(),
|
584
|
+
to,
|
538
585
|
amount);
|
539
586
|
}
|
540
587
|
|
588
|
+
|
589
|
+
function _getAndVerifyActivePool()
|
590
|
+
internal
|
591
|
+
virtual
|
592
|
+
view
|
593
|
+
returns (
|
594
|
+
NftId poolNftId,
|
595
|
+
IInstance instance
|
596
|
+
)
|
597
|
+
{
|
598
|
+
(
|
599
|
+
IRegistry.ObjectInfo memory info,
|
600
|
+
address instanceAddress
|
601
|
+
) = ContractLib.getAndVerifyComponent(
|
602
|
+
getRegistry(),
|
603
|
+
msg.sender,
|
604
|
+
POOL(),
|
605
|
+
true); // only active pools
|
606
|
+
|
607
|
+
poolNftId = info.nftId;
|
608
|
+
instance = IInstance(instanceAddress);
|
609
|
+
}
|
610
|
+
|
611
|
+
|
541
612
|
function _getDomain() internal pure override returns(ObjectType) {
|
542
613
|
return POOL();
|
543
614
|
}
|
@@ -17,7 +17,7 @@ contract PoolServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
PoolService poolSrv = new PoolService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(poolSrv),
|
@@ -41,11 +41,11 @@ contract ApplicationService is
|
|
41
41
|
initializer()
|
42
42
|
{
|
43
43
|
(
|
44
|
-
address
|
45
|
-
address
|
44
|
+
address authority,
|
45
|
+
address registry
|
46
46
|
) = abi.decode(data, (address, address));
|
47
47
|
|
48
|
-
|
48
|
+
__Service_init(authority, registry, owner);
|
49
49
|
|
50
50
|
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
51
51
|
_pricingService = IPricingService(_getServiceAddress(PRICE()));
|
@@ -55,10 +55,10 @@ contract ApplicationService is
|
|
55
55
|
}
|
56
56
|
|
57
57
|
|
58
|
-
function
|
58
|
+
function _checkLinkedApplicationParameters(
|
59
59
|
InstanceReader instanceReader,
|
60
60
|
NftId productNftId,
|
61
|
-
RiskId
|
61
|
+
RiskId riskId,
|
62
62
|
ReferralId referralId,
|
63
63
|
NftId bundleNftId
|
64
64
|
)
|
@@ -66,18 +66,18 @@ contract ApplicationService is
|
|
66
66
|
virtual
|
67
67
|
view
|
68
68
|
{
|
69
|
-
|
69
|
+
// check risk with product
|
70
|
+
(bool exists, bool active) = instanceReader.getRiskSet().checkRisk(productNftId, riskId);
|
71
|
+
if (!exists) { revert ErrorApplicationServiceRiskUnknown(riskId, productNftId); }
|
72
|
+
if (!active) { revert ErrorApplicationServiceRiskPaused(riskId, productNftId); }
|
70
73
|
|
71
|
-
//
|
74
|
+
// check bundle with pool
|
75
|
+
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
76
|
+
(exists, active) = instanceReader.getBundleSet().checkBundle(poolNftId, bundleNftId);
|
77
|
+
if (!exists) { revert ErrorApplicationServiceBundleUnknown(bundleNftId, poolNftId); }
|
78
|
+
if (!active) { revert ErrorApplicationServiceBundleLocked(bundleNftId, poolNftId); }
|
72
79
|
|
73
80
|
// TODO check referral with distribution
|
74
|
-
|
75
|
-
// check bundle with pool
|
76
|
-
NftId productPoolNftId = productInfo.poolNftId;
|
77
|
-
NftId bundlePoolNftId = instanceReader.getBundleInfo(bundleNftId).poolNftId;
|
78
|
-
if(bundlePoolNftId != productPoolNftId) {
|
79
|
-
revert ErrorApplicationServiceBundlePoolMismatch(bundleNftId, productPoolNftId, bundlePoolNftId);
|
80
|
-
}
|
81
81
|
}
|
82
82
|
|
83
83
|
|
@@ -143,7 +143,7 @@ contract ApplicationService is
|
|
143
143
|
|
144
144
|
// check if provided references are valid and linked to calling product contract
|
145
145
|
InstanceReader instanceReader = instance.getInstanceReader();
|
146
|
-
|
146
|
+
_checkLinkedApplicationParameters(
|
147
147
|
instanceReader,
|
148
148
|
productNftId,
|
149
149
|
riskId,
|
@@ -17,7 +17,7 @@ contract ApplicationServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
ApplicationService svc = new ApplicationService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Fee} from "../type/Fee.sol";
|
5
5
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
6
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
6
7
|
import {NftId} from "../type/NftId.sol";
|
7
8
|
import {Product} from "../product/Product.sol";
|
8
9
|
|
@@ -25,13 +26,12 @@ abstract contract BasicProduct is
|
|
25
26
|
function _initializeBasicProduct(
|
26
27
|
address registry,
|
27
28
|
NftId instanceNftId,
|
28
|
-
IAuthorization authorization,
|
29
|
-
address initialOwner,
|
30
29
|
string memory name,
|
31
30
|
address token,
|
32
|
-
|
33
|
-
|
34
|
-
|
31
|
+
IComponents.ProductInfo memory productInfo,
|
32
|
+
IComponents.FeeInfo memory feeInfo,
|
33
|
+
IAuthorization authorization,
|
34
|
+
address initialOwner
|
35
35
|
)
|
36
36
|
internal
|
37
37
|
virtual
|
@@ -40,14 +40,12 @@ abstract contract BasicProduct is
|
|
40
40
|
_initializeProduct(
|
41
41
|
registry,
|
42
42
|
instanceNftId,
|
43
|
-
authorization,
|
44
|
-
initialOwner,
|
45
43
|
name,
|
46
44
|
token,
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
45
|
+
productInfo,
|
46
|
+
feeInfo,
|
47
|
+
authorization,
|
48
|
+
initialOwner,
|
51
49
|
""); // component data
|
52
50
|
}
|
53
51
|
}
|
@@ -6,8 +6,7 @@ import {BasicProduct} from "./BasicProduct.sol";
|
|
6
6
|
import {PRODUCT} from "../type/ObjectType.sol";
|
7
7
|
import {IAccess} from "../authorization/IAccess.sol";
|
8
8
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
9
|
-
import {PUBLIC_ROLE} from "
|
10
|
-
import {RoleId} from "../type/RoleId.sol";
|
9
|
+
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
11
10
|
|
12
11
|
|
13
12
|
contract BasicProductAuthorization
|