@etherisc/gif-next 0.0.2-9306579-093 → 0.0.2-9356555-232
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 +211 -66
- 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 +200 -16
- 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 +142 -25
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +107 -15
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +175 -216
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +206 -27
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +113 -130
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +334 -159
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +115 -65
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +100 -112
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +205 -66
- 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 +158 -195
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +206 -27
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +351 -318
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +203 -28
- 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 +259 -168
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +156 -153
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +282 -193
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +714 -283
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -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 +158 -57
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +211 -82
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +434 -128
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +150 -90
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +627 -207
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +129 -157
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -45
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +469 -338
- 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 +46 -5
- 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/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- 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 +132 -173
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +180 -29
- 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 +94 -106
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +108 -125
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +151 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +95 -41
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +107 -152
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +206 -27
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +156 -326
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +79 -101
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -135
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +94 -145
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +192 -229
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +107 -163
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +330 -368
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +119 -69
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +190 -48
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +80 -38
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +228 -186
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +206 -27
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +272 -173
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +100 -78
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +131 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +170 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +139 -54
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +117 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +211 -164
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +86 -6
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +235 -170
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +102 -64
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +200 -106
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +93 -51
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +224 -182
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +167 -67
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +92 -38
- 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 +98 -17
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
- 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/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +142 -53
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +331 -261
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +181 -74
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -33
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +414 -250
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- 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 +105 -104
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +483 -485
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +99 -73
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +55 -2
- 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 +92 -86
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +446 -276
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +94 -106
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
- 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 +107 -124
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -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 +18 -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 +152 -38
- 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 +55 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -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 +110 -122
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +77 -16
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +33 -33
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +192 -192
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +89 -51
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +120 -55
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +73 -39
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +171 -130
- 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 +69 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- 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/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- 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 +44 -12
- 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 +237 -140
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +321 -205
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +17 -9
- package/contracts/authorization/IAuthorization.sol +27 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +15 -12
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +41 -47
- package/contracts/distribution/DistributionService.sol +127 -78
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +22 -20
- package/contracts/examples/fire/FirePool.sol +25 -10
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +66 -41
- package/contracts/examples/fire/FireProductAuthorization.sol +3 -3
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -4
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +37 -7
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +53 -27
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +17 -10
- package/contracts/instance/IInstanceService.sol +9 -29
- package/contracts/instance/Instance.sol +52 -34
- package/contracts/instance/InstanceAdmin.sol +249 -100
- package/contracts/instance/InstanceAuthorizationV3.sol +54 -45
- package/contracts/instance/InstanceReader.sol +187 -32
- package/contracts/instance/InstanceService.sol +85 -146
- 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/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +10 -7
- package/contracts/instance/module/IDistribution.sol +5 -2
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +5 -16
- package/contracts/oracle/OracleService.sol +107 -78
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +33 -24
- package/contracts/pool/BasicPoolAuthorization.sol +27 -9
- package/contracts/pool/BundleService.sol +88 -154
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +15 -43
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +58 -64
- package/contracts/pool/Pool.sol +112 -120
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +436 -242
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +39 -16
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +10 -12
- package/contracts/product/BasicProductAuthorization.sol +24 -11
- package/contracts/product/ClaimService.sol +202 -151
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +8 -2
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +26 -11
- package/contracts/product/IPricingService.sol +10 -9
- package/contracts/product/IProductComponent.sol +10 -1
- package/contracts/product/IRiskService.sol +7 -7
- package/contracts/product/PolicyService.sol +248 -252
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +35 -26
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +100 -63
- package/contracts/product/RiskService.sol +89 -31
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +10 -11
- package/contracts/registry/IRegistry.sol +14 -18
- package/contracts/registry/IRegistryService.sol +6 -4
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +29 -6
- package/contracts/registry/RegistryAdmin.sol +132 -242
- package/contracts/registry/RegistryService.sol +40 -58
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +257 -237
- package/contracts/registry/ServiceAuthorizationV3.sol +97 -48
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +69 -118
- package/contracts/shared/ComponentService.sol +422 -371
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +27 -15
- package/contracts/shared/ContractLib.sol +224 -9
- package/contracts/shared/IComponent.sol +8 -20
- package/contracts/shared/IComponentService.sol +41 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +68 -42
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +26 -6
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +53 -19
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +9 -31
- package/contracts/shared/TokenHandler.sol +274 -72
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +5 -8
- package/contracts/staking/IStakingService.sol +8 -3
- package/contracts/staking/StakeManagerLib.sol +1 -1
- package/contracts/staking/Staking.sol +63 -35
- package/contracts/staking/StakingReader.sol +1 -1
- package/contracts/staking/StakingService.sol +45 -22
- package/contracts/staking/StakingServiceManager.sol +5 -4
- 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 +48 -21
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +23 -15
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +14 -1
- 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 +2 -1
- package/package.json +5 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/module/IAccess.sol +0 -46
@@ -1,43 +1,41 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {ClaimId} from "../type/ClaimId.sol";
|
6
|
-
import {Fee} from "../type/Fee.sol";
|
7
|
-
import {IBundle} from "../instance/module/IBundle.sol";
|
8
4
|
import {IInstance} from "../instance/IInstance.sol";
|
9
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
10
5
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
6
|
import {IService} from "../shared/IService.sol";
|
7
|
+
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
9
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
10
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
11
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
12
12
|
import {NftId} from "../type/NftId.sol";
|
13
13
|
import {PayoutId} from "../type/PayoutId.sol";
|
14
|
-
import {RoleId} from "../type/RoleId.sol";
|
15
|
-
import {Seconds} from "../type/Seconds.sol";
|
16
|
-
import {StateId} from "../type/StateId.sol";
|
17
14
|
import {UFixed} from "../type/UFixed.sol";
|
18
15
|
|
19
16
|
interface IPoolService is IService {
|
20
17
|
|
21
18
|
event LogPoolServiceMaxBalanceAmountUpdated(NftId poolNftId, Amount previousMaxCapitalAmount, Amount currentMaxCapitalAmount);
|
22
|
-
event
|
19
|
+
event LogPoolServiceWalletFunded(NftId poolNftId, address poolOwner, Amount amount);
|
20
|
+
event LogPoolServiceWalletDefunded(NftId poolNftId, address poolOwner, Amount amount);
|
23
21
|
|
24
22
|
event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
25
23
|
event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
26
24
|
|
27
25
|
event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
28
|
-
event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount);
|
26
|
+
event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
27
|
+
|
28
|
+
event LogPoolServiceFeesWithdrawn(NftId bundleNftId, address recipient, address tokenAddress, Amount amount);
|
29
29
|
|
30
30
|
event LogPoolServiceProcessFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount);
|
31
31
|
|
32
|
+
error ErrorPoolServicePoolNotExternallyManaged(NftId poolNftId);
|
32
33
|
error ErrorPoolServicePolicyPoolMismatch(NftId policyNftId, NftId productNftId, NftId expectedProductNftId);
|
33
34
|
error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
|
34
35
|
error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
|
35
36
|
error ErrorPoolServiceBundlePoolMismatch(NftId bundleNftId, NftId poolNftId);
|
36
37
|
error ErrorPoolServiceMaxBalanceAmountExceeded(NftId poolNftId, Amount maxBalanceAmount, Amount currentBalanceAmount, Amount transferAmount);
|
37
|
-
|
38
|
-
/// @dev defines the required role for bundle owners for the calling pool
|
39
|
-
/// default implementation returns PUBLIC ROLE
|
40
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole) external;
|
38
|
+
error ErrorPoolServiceFeesWithdrawAmountExceedsLimit(Amount amount, Amount limit);
|
41
39
|
|
42
40
|
/// @dev sets the max balance amount for the calling pool
|
43
41
|
function setMaxBalanceAmount(Amount maxBalanceAmount) external;
|
@@ -66,7 +64,6 @@ interface IPoolService is IService {
|
|
66
64
|
/// may only be called by the policy service for unlocked pool components
|
67
65
|
function releaseCollateral(
|
68
66
|
IInstance instance,
|
69
|
-
address token,
|
70
67
|
NftId policyNftId,
|
71
68
|
IPolicy.PolicyInfo memory policyInfo
|
72
69
|
) external;
|
@@ -76,26 +73,17 @@ interface IPoolService is IService {
|
|
76
73
|
/// every payout of a policy reduces the collateral by the payout amount
|
77
74
|
/// may only be called by the claim service for unlocked pool components
|
78
75
|
function processPayout(
|
79
|
-
|
80
|
-
|
76
|
+
InstanceReader instanceReader,
|
77
|
+
InstanceStore instanceStore,
|
78
|
+
NftId productNftId,
|
81
79
|
NftId policyNftId,
|
82
|
-
|
83
|
-
|
80
|
+
NftId bundleNftId,
|
81
|
+
PayoutId payoutId,
|
82
|
+
Amount payoutAmount,
|
83
|
+
address payoutBeneficiary
|
84
84
|
) external;
|
85
85
|
|
86
86
|
|
87
|
-
/// @dev create a new empty bundle with the provided parameters
|
88
|
-
/// may only be called by registered and unlocked pool components.
|
89
|
-
function createBundle(
|
90
|
-
address owner, // initial bundle owner
|
91
|
-
Fee memory fee, // fees deducted from premium that go to bundle owner
|
92
|
-
Seconds lifetime, // initial duration for which new policies are covered
|
93
|
-
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
94
|
-
)
|
95
|
-
external
|
96
|
-
returns(NftId bundleNftId); // the nft id of the newly created bundle
|
97
|
-
|
98
|
-
|
99
87
|
/// @dev increase stakes for bundle
|
100
88
|
/// staking fees will be deducted by the pool service from the staking amount
|
101
89
|
/// may only be called by registered and unlocked pool components
|
@@ -116,56 +104,62 @@ interface IPoolService is IService {
|
|
116
104
|
function closeBundle(NftId bundleNftId) external;
|
117
105
|
|
118
106
|
|
107
|
+
/// @dev Withdraw bundle feeds for the specified bundle.
|
108
|
+
function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
|
109
|
+
|
110
|
+
|
119
111
|
/// @dev Informs product about available funds to process a confirmed claim.
|
120
112
|
/// The function triggers a callback to the product component when the product's property isProcessingFundedClaims is set.
|
121
113
|
function processFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount) external;
|
122
114
|
|
123
115
|
|
124
|
-
/// @dev Fund the
|
125
|
-
/// This function will collect the amount from the
|
116
|
+
/// @dev Fund the pool wallet with the provided amount.
|
117
|
+
/// This function will collect the amount from the pool owner and transfers it to the pool wallet.
|
126
118
|
/// The function will not update balance amounts managed by the framework.
|
127
119
|
/// Only available for externally managed pools.
|
128
|
-
function fundPoolWallet(
|
120
|
+
function fundPoolWallet(Amount amount) external;
|
129
121
|
|
130
122
|
|
131
123
|
/// @dev Defund the specified pool wallet with the provided amount.
|
132
|
-
/// This function will transfer the amount from the pool wallet to the
|
124
|
+
/// This function will transfer the amount from the pool wallet to the pool owner.
|
133
125
|
/// The function will not update balance amounts managed by the framework.
|
134
126
|
/// Only available for externally managed pools.
|
135
|
-
function defundPoolWallet(
|
127
|
+
function defundPoolWallet(Amount amount) external;
|
136
128
|
|
137
129
|
|
138
130
|
/// @dev processes the sale of a bundle and track the pool fee and bundle fee amounts
|
139
131
|
function processSale(NftId bundleNftId, IPolicy.PremiumInfo memory premium) external;
|
140
132
|
|
141
133
|
|
142
|
-
/// @dev Calulate required collateral for the provided parameters.
|
143
|
-
function calculateRequiredCollateral(
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
)
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
///
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
134
|
+
// /// @dev Calulate required collateral for the provided parameters.
|
135
|
+
// function calculateRequiredCollateral(
|
136
|
+
// InstanceReader instanceReader,
|
137
|
+
// NftId productNftId,
|
138
|
+
// Amount sumInsuredAmount
|
139
|
+
// )
|
140
|
+
// external
|
141
|
+
// view
|
142
|
+
// returns(
|
143
|
+
// NftId poolNftId,
|
144
|
+
// Amount totalCollateralAmount,
|
145
|
+
// Amount localCollateralAmount,
|
146
|
+
// bool poolIsVerifyingApplications
|
147
|
+
// );
|
148
|
+
|
149
|
+
|
150
|
+
// /// @dev calulate required collateral for the provided parameters.
|
151
|
+
// /// Collateralization is applied to sum insured.
|
152
|
+
// /// Retention level defines the fraction of the collateral that is required locally.
|
153
|
+
// function calculateRequiredCollateral(
|
154
|
+
// UFixed collateralizationLevel,
|
155
|
+
// UFixed retentionLevel,
|
156
|
+
// Amount sumInsuredAmount
|
157
|
+
// )
|
158
|
+
// external
|
159
|
+
// pure
|
160
|
+
// returns(
|
161
|
+
// Amount totalCollateralAmount,
|
162
|
+
// Amount localCollateralAmount
|
163
|
+
// );
|
170
164
|
|
171
165
|
}
|
package/contracts/pool/Pool.sol
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
|
-
import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
|
5
|
+
import {BUNDLE, COMPONENT, POLICY, POOL} from "../type/ObjectType.sol";
|
6
6
|
import {ClaimId} from "../type/ClaimId.sol";
|
7
7
|
import {IBundleService} from "./IBundleService.sol";
|
8
8
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
@@ -11,13 +11,13 @@ import {IPoolService} from "./IPoolService.sol";
|
|
11
11
|
import {IComponents} from "../instance/module/IComponents.sol";
|
12
12
|
import {IComponentService} from "../shared/IComponentService.sol";
|
13
13
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
14
|
-
import {
|
15
|
-
import {
|
14
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
15
|
+
import {Fee} from "../type/Fee.sol";
|
16
|
+
import {NftId} from "../type/NftId.sol";
|
16
17
|
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
17
18
|
import {Seconds} from "../type/Seconds.sol";
|
18
19
|
import {Timestamp} from "../type/Timestamp.sol";
|
19
|
-
import {
|
20
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
20
|
+
import {UFixed} from "../type/UFixed.sol";
|
21
21
|
|
22
22
|
abstract contract Pool is
|
23
23
|
InstanceLinkedComponent,
|
@@ -27,6 +27,7 @@ abstract contract Pool is
|
|
27
27
|
bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
|
28
28
|
|
29
29
|
struct PoolStorage {
|
30
|
+
IComponents.PoolInfo _poolInfo;
|
30
31
|
IComponentService _componentService;
|
31
32
|
IPoolService _poolService;
|
32
33
|
IBundleService _bundleService;
|
@@ -41,33 +42,29 @@ abstract contract Pool is
|
|
41
42
|
}
|
42
43
|
|
43
44
|
|
44
|
-
function
|
45
|
-
|
46
|
-
|
47
|
-
onlyOwner()
|
48
|
-
{
|
49
|
-
_getPoolStorage()._componentService.registerPool();
|
50
|
-
_approveTokenHandler(type(uint256).max);
|
45
|
+
// TODO remove function once this is no longer used to produce contract locations on the fly ...
|
46
|
+
function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
|
47
|
+
return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
|
51
48
|
}
|
52
49
|
|
53
50
|
|
54
51
|
/// @dev see {IPoolComponent.verifyApplication}
|
55
52
|
function verifyApplication(
|
56
53
|
NftId applicationNftId,
|
57
|
-
bytes memory applicationData,
|
58
54
|
NftId bundleNftId,
|
59
|
-
bytes memory bundleFilter,
|
60
55
|
Amount collateralizationAmount
|
61
56
|
)
|
62
57
|
public
|
63
58
|
virtual
|
64
59
|
restricted()
|
60
|
+
onlyNftOfType(applicationNftId, POLICY())
|
65
61
|
{
|
62
|
+
InstanceReader reader = _getInstanceReader();
|
66
63
|
if(!applicationMatchesBundle(
|
67
64
|
applicationNftId,
|
68
|
-
applicationData,
|
65
|
+
reader.getPolicyInfo(applicationNftId).applicationData,
|
69
66
|
bundleNftId,
|
70
|
-
|
67
|
+
reader.getBundleInfo(bundleNftId).filter,
|
71
68
|
collateralizationAmount)
|
72
69
|
)
|
73
70
|
{
|
@@ -87,14 +84,16 @@ abstract contract Pool is
|
|
87
84
|
public
|
88
85
|
virtual
|
89
86
|
restricted()
|
87
|
+
onlyNftOfType(policyNftId, POLICY())
|
90
88
|
{
|
91
89
|
// default implementation is empty
|
92
90
|
}
|
93
91
|
|
94
92
|
|
95
93
|
/// @dev see {IPoolComponent.applicationMatchesBundle}
|
96
|
-
///
|
97
|
-
///
|
94
|
+
/// Default implementation always returns true.
|
95
|
+
/// Override this function to implement any custom application verification.
|
96
|
+
/// Calling super.applicationMatchesBundle will ensure validation of application and bundle nft ids.
|
98
97
|
function applicationMatchesBundle(
|
99
98
|
NftId applicationNftId,
|
100
99
|
bytes memory applicationData,
|
@@ -105,22 +104,13 @@ abstract contract Pool is
|
|
105
104
|
public
|
106
105
|
virtual
|
107
106
|
view
|
107
|
+
onlyNftOfType(applicationNftId, POLICY())
|
108
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
108
109
|
returns (bool isMatching)
|
109
110
|
{
|
110
111
|
return true;
|
111
112
|
}
|
112
113
|
|
113
|
-
/// @inheritdoc IPoolComponent
|
114
|
-
function withdrawBundleFees(NftId bundleNftId, Amount amount)
|
115
|
-
external
|
116
|
-
virtual
|
117
|
-
restricted()
|
118
|
-
onlyBundleOwner(bundleNftId)
|
119
|
-
returns (Amount withdrawnAmount)
|
120
|
-
{
|
121
|
-
return _withdrawBundleFees(bundleNftId, amount);
|
122
|
-
}
|
123
|
-
|
124
114
|
|
125
115
|
function getInitialPoolInfo()
|
126
116
|
public
|
@@ -128,29 +118,19 @@ abstract contract Pool is
|
|
128
118
|
view
|
129
119
|
returns (IComponents.PoolInfo memory poolInfo)
|
130
120
|
{
|
131
|
-
return
|
132
|
-
maxBalanceAmount: AmountLib.max(),
|
133
|
-
bundleOwnerRole: PUBLIC_ROLE(),
|
134
|
-
isInterceptingBundleTransfers: isNftInterceptor(),
|
135
|
-
isProcessingConfirmedClaims: false,
|
136
|
-
isExternallyManaged: false,
|
137
|
-
isVerifyingApplications: false,
|
138
|
-
collateralizationLevel: UFixedLib.toUFixed(1),
|
139
|
-
retentionLevel: UFixedLib.toUFixed(1)
|
140
|
-
});
|
121
|
+
return _getPoolStorage()._poolInfo;
|
141
122
|
}
|
142
123
|
|
143
124
|
// Internals
|
144
125
|
|
145
126
|
function _initializePool(
|
146
127
|
address registry,
|
147
|
-
NftId
|
128
|
+
NftId productNftId,
|
148
129
|
string memory name,
|
149
130
|
address token,
|
131
|
+
IComponents.PoolInfo memory poolInfo,
|
150
132
|
IAuthorization authorization,
|
151
|
-
bool isInterceptingNftTransfers,
|
152
133
|
address initialOwner,
|
153
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
154
134
|
bytes memory componentData // component specifidc data
|
155
135
|
)
|
156
136
|
internal
|
@@ -159,17 +139,18 @@ abstract contract Pool is
|
|
159
139
|
{
|
160
140
|
_initializeInstanceLinkedComponent(
|
161
141
|
registry,
|
162
|
-
|
142
|
+
productNftId,
|
163
143
|
name,
|
164
144
|
token,
|
165
145
|
POOL(),
|
166
146
|
authorization,
|
167
|
-
|
147
|
+
poolInfo.isInterceptingBundleTransfers,
|
168
148
|
initialOwner,
|
169
|
-
registryData,
|
170
149
|
componentData);
|
171
150
|
|
172
151
|
PoolStorage storage $ = _getPoolStorage();
|
152
|
+
|
153
|
+
$._poolInfo = poolInfo;
|
173
154
|
$._poolService = IPoolService(_getServiceAddress(POOL()));
|
174
155
|
$._bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
175
156
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
@@ -177,6 +158,88 @@ abstract contract Pool is
|
|
177
158
|
_registerInterface(type(IPoolComponent).interfaceId);
|
178
159
|
}
|
179
160
|
|
161
|
+
|
162
|
+
/// @dev Update pool fees to the specified values.
|
163
|
+
/// Pool fee: are deducted from the premium amount and goes to the pool owner.
|
164
|
+
/// Staking fee: are deducted from the staked tokens by a bundle owner and goes to the pool owner.
|
165
|
+
/// Performance fee: when a bundle is closed a bundle specific profit is calculated.
|
166
|
+
/// The performance fee is deducted from this profit and goes to the pool owner.
|
167
|
+
function _setPoolFees(
|
168
|
+
Fee memory poolFee,
|
169
|
+
Fee memory stakingFee,
|
170
|
+
Fee memory performanceFee
|
171
|
+
)
|
172
|
+
internal
|
173
|
+
virtual
|
174
|
+
{
|
175
|
+
_getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
|
176
|
+
}
|
177
|
+
|
178
|
+
|
179
|
+
/// @dev Sets the maximum balance amound held by this pool.
|
180
|
+
/// Function may only be called by pool owner.
|
181
|
+
function _setMaxBalanceAmount(Amount maxBalanceAmount)
|
182
|
+
internal
|
183
|
+
virtual
|
184
|
+
{
|
185
|
+
_getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
|
186
|
+
}
|
187
|
+
|
188
|
+
|
189
|
+
/// @dev Fund the pool wallet with the specified amount.
|
190
|
+
/// Function is only available for externally managed pools.
|
191
|
+
function _fundPoolWallet(Amount amount)
|
192
|
+
internal
|
193
|
+
virtual
|
194
|
+
{
|
195
|
+
_getPoolStorage()._poolService.fundPoolWallet(amount);
|
196
|
+
}
|
197
|
+
|
198
|
+
|
199
|
+
/// @dev Withdraw the specified amount from the pool wallet.
|
200
|
+
/// Function is only available for externally managed pools.
|
201
|
+
function _defundPoolWallet(Amount amount)
|
202
|
+
internal
|
203
|
+
virtual
|
204
|
+
{
|
205
|
+
_getPoolStorage()._poolService.defundPoolWallet(amount);
|
206
|
+
}
|
207
|
+
|
208
|
+
|
209
|
+
/// @dev Creates a new empty bundle using the provided parameter values.
|
210
|
+
function _createBundle(
|
211
|
+
address bundleOwner,
|
212
|
+
Fee memory fee,
|
213
|
+
Seconds lifetime,
|
214
|
+
bytes memory filter
|
215
|
+
)
|
216
|
+
internal
|
217
|
+
returns(NftId bundleNftId)
|
218
|
+
{
|
219
|
+
bundleNftId = _getPoolStorage()._bundleService.create(
|
220
|
+
bundleOwner,
|
221
|
+
fee,
|
222
|
+
lifetime,
|
223
|
+
filter);
|
224
|
+
|
225
|
+
// TODO add logging
|
226
|
+
}
|
227
|
+
|
228
|
+
|
229
|
+
/// @dev Sets the fee for the specified bundle.
|
230
|
+
/// The fee is added on top of the poolFee and deducted from the premium amounts
|
231
|
+
/// Via these fees individual bundler owner may earn income per policy in the context of peer to peer pools.
|
232
|
+
function _setBundleFee(
|
233
|
+
NftId bundleNftId,
|
234
|
+
Fee memory fee
|
235
|
+
)
|
236
|
+
internal
|
237
|
+
virtual
|
238
|
+
{
|
239
|
+
_getPoolStorage()._bundleService.setFee(bundleNftId, fee);
|
240
|
+
}
|
241
|
+
|
242
|
+
|
180
243
|
/// @dev increases the staked tokens by the specified amount
|
181
244
|
/// bundle MUST be in active or locked state
|
182
245
|
function _stake(
|
@@ -253,87 +316,15 @@ abstract contract Pool is
|
|
253
316
|
}
|
254
317
|
|
255
318
|
|
256
|
-
/// @dev
|
257
|
-
/// The fee is added on top of the poolFee and deducted from the premium amounts
|
258
|
-
/// Via these fees individual bundler owner may earn income per policy in the context of peer to peer pools.
|
259
|
-
function _setBundleFee(
|
260
|
-
NftId bundleNftId,
|
261
|
-
Fee memory fee
|
262
|
-
)
|
263
|
-
internal
|
264
|
-
virtual
|
265
|
-
{
|
266
|
-
_getPoolStorage()._bundleService.setFee(bundleNftId, fee);
|
267
|
-
}
|
268
|
-
|
269
|
-
|
270
|
-
/// @dev Sets the maximum balance amound held by this pool.
|
271
|
-
/// Function may only be called by pool owner.
|
272
|
-
function _setMaxBalanceAmount(Amount maxBalanceAmount)
|
273
|
-
internal
|
274
|
-
virtual
|
275
|
-
{
|
276
|
-
_getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
|
277
|
-
}
|
278
|
-
|
279
|
-
/// @dev Sets the required role to create/own bundles.
|
280
|
-
/// May only be called once after setting up a pool.
|
281
|
-
/// May only be called by pool owner.
|
282
|
-
function _setBundleOwnerRole(RoleId bundleOwnerRole)
|
283
|
-
internal
|
284
|
-
virtual
|
285
|
-
{
|
286
|
-
_getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
|
287
|
-
}
|
288
|
-
|
289
|
-
|
290
|
-
/// @dev Update pool fees to the specified values.
|
291
|
-
/// Pool fee: are deducted from the premium amount and goes to the pool owner.
|
292
|
-
/// Staking fee: are deducted from the staked tokens by a bundle owner and goes to the pool owner.
|
293
|
-
/// Performance fee: when a bundle is closed a bundle specific profit is calculated.
|
294
|
-
/// The performance fee is deducted from this profit and goes to the pool owner.
|
295
|
-
function _setPoolFees(
|
296
|
-
Fee memory poolFee,
|
297
|
-
Fee memory stakingFee,
|
298
|
-
Fee memory performanceFee
|
299
|
-
)
|
300
|
-
internal
|
301
|
-
virtual
|
302
|
-
{
|
303
|
-
_getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
|
304
|
-
}
|
305
|
-
|
306
|
-
/// @dev Creates a new empty bundle using the provided parameter values.
|
307
|
-
function _createBundle(
|
308
|
-
address bundleOwner,
|
309
|
-
Fee memory fee,
|
310
|
-
Seconds lifetime,
|
311
|
-
bytes memory filter
|
312
|
-
)
|
313
|
-
internal
|
314
|
-
returns(NftId bundleNftId)
|
315
|
-
{
|
316
|
-
bundleNftId = _getPoolStorage()._poolService.createBundle(
|
317
|
-
bundleOwner,
|
318
|
-
fee,
|
319
|
-
lifetime,
|
320
|
-
filter);
|
321
|
-
|
322
|
-
// TODO add logging
|
323
|
-
}
|
324
|
-
|
325
|
-
// TODO remove function once this is no longer used to produce contract locations on the fly ...
|
326
|
-
function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
|
327
|
-
return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
|
328
|
-
}
|
329
|
-
|
319
|
+
/// @dev Withdraws the specified amount of fees from the bundle.
|
330
320
|
function _withdrawBundleFees(NftId bundleNftId, Amount amount)
|
331
321
|
internal
|
332
322
|
returns (Amount withdrawnAmount)
|
333
323
|
{
|
334
|
-
return _getPoolStorage().
|
324
|
+
return _getPoolStorage()._poolService.withdrawBundleFees(bundleNftId, amount);
|
335
325
|
}
|
336
326
|
|
327
|
+
|
337
328
|
function _processFundedClaim(
|
338
329
|
NftId policyNftId,
|
339
330
|
ClaimId claimId,
|
@@ -345,6 +336,7 @@ abstract contract Pool is
|
|
345
336
|
policyNftId, claimId, availableAmount);
|
346
337
|
}
|
347
338
|
|
339
|
+
|
348
340
|
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
349
341
|
assembly {
|
350
342
|
$.slot := POOL_STORAGE_LOCATION_V1
|