@etherisc/gif-next 0.0.2-860ef47-116 → 0.0.2-864c5f3-808
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 +32 -8
- 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 +203 -77
- 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 -44
- 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 +165 -391
- 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 +103 -321
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +337 -366
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +133 -119
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +115 -143
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +203 -129
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
- 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 +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
- 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 +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2432 -0
- 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 +194 -154
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +446 -143
- 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 +1017 -271
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -92
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +707 -438
- 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 +114 -340
- 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 +102 -130
- 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 +90 -308
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +112 -330
- 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 +159 -443
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +106 -140
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -158
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +124 -163
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +312 -295
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +109 -338
- 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 +440 -550
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +130 -112
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +243 -400
- 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 +415 -234
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +140 -114
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +306 -130
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +235 -202
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +67 -8
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +369 -336
- 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 +129 -103
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +227 -314
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +241 -398
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +659 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +732 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +334 -34
- 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 +540 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +349 -167
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
- 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 +420 -246
- 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 +76 -265
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +501 -626
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +136 -128
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
- 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 +89 -88
- 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 +102 -130
- 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/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- 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/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +89 -307
- 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 +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- 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 +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
- 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 +76 -106
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +210 -366
- 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 +122 -95
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +122 -164
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +99 -85
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +149 -108
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
- 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 +33 -9
- 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 +28 -4
- 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 +19 -19
- 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 +125 -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/Seconds.sol/SecondsLib.json +26 -2
- 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 +16 -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 +71 -70
- 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 +232 -134
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +321 -202
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +17 -10
- 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 +42 -48
- package/contracts/distribution/DistributionService.sol +135 -104
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +29 -24
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +437 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +21 -37
- package/contracts/instance/IInstanceService.sol +9 -29
- package/contracts/instance/Instance.sol +59 -66
- package/contracts/instance/InstanceAdmin.sol +256 -85
- package/contracts/instance/InstanceAuthorizationV3.sol +56 -47
- package/contracts/instance/InstanceReader.sol +267 -43
- package/contracts/instance/InstanceService.sol +125 -164
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +23 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +11 -4
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +14 -10
- package/contracts/instance/module/IDistribution.sol +5 -2
- package/contracts/instance/module/IPolicy.sol +26 -25
- 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 +7 -17
- package/contracts/oracle/OracleService.sol +113 -81
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +35 -26
- package/contracts/pool/BasicPoolAuthorization.sol +29 -11
- package/contracts/pool/BundleService.sol +106 -161
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +18 -37
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +90 -74
- package/contracts/pool/Pool.sol +140 -123
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +512 -305
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +72 -43
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +11 -12
- package/contracts/product/BasicProductAuthorization.sol +24 -11
- package/contracts/product/ClaimService.sol +368 -153
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +6 -2
- package/contracts/product/IClaimService.sol +44 -8
- package/contracts/product/IPolicyService.sol +53 -42
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +27 -5
- package/contracts/product/{IProductService.sol → IRiskService.sol} +6 -9
- package/contracts/product/PolicyService.sol +456 -303
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +66 -62
- package/contracts/product/PricingServiceManager.sol +4 -4
- package/contracts/product/Product.sol +154 -96
- package/contracts/product/RiskService.sol +144 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +60 -28
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +357 -203
- package/contracts/registry/RegistryAdmin.sol +171 -182
- package/contracts/registry/RegistryService.sol +37 -48
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +258 -232
- package/contracts/registry/ServiceAuthorizationV3.sol +99 -52
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +74 -127
- package/contracts/shared/ComponentService.sol +426 -385
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +253 -0
- package/contracts/shared/IComponent.sol +8 -17
- package/contracts/shared/IComponentService.sol +41 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +73 -48
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +29 -9
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +55 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +15 -32
- package/contracts/shared/TokenHandler.sol +309 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +7 -9
- package/contracts/staking/IStakingService.sol +8 -3
- package/contracts/staking/StakeManagerLib.sol +19 -26
- package/contracts/staking/Staking.sol +71 -61
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +13 -6
- package/contracts/staking/StakingService.sol +54 -35
- package/contracts/staking/StakingServiceManager.sol +6 -5
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +52 -20
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +23 -15
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +13 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- 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/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- 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
- package/contracts/product/ProductService.sol +0 -99
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -1,8 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
|
4
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
6
5
|
import {IBundle} from "../instance/module/IBundle.sol";
|
7
6
|
import {IBundleService} from "./IBundleService.sol";
|
8
7
|
import {IComponents} from "../instance/module/IComponents.sol";
|
@@ -11,15 +10,14 @@ import {IRegistry} from "../registry/IRegistry.sol";
|
|
11
10
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
12
11
|
import {IInstance} from "../instance/IInstance.sol";
|
13
12
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
14
|
-
import {IPolicy} from "../instance/module/IPolicy.sol";
|
15
13
|
|
16
14
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
17
15
|
import {BundleSet} from "../instance/BundleSet.sol";
|
18
16
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
19
|
-
import {Fee
|
17
|
+
import {Fee} from "../type/Fee.sol";
|
20
18
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
21
19
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
22
|
-
import {ObjectType, COMPONENT, POOL, BUNDLE, REGISTRY} from "../type/ObjectType.sol";
|
20
|
+
import {ObjectType, ACCOUNTING, COMPONENT, POOL, BUNDLE, POLICY, REGISTRY} from "../type/ObjectType.sol";
|
23
21
|
import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
|
24
22
|
import {Seconds} from "../type/Seconds.sol";
|
25
23
|
import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
@@ -35,6 +33,7 @@ contract BundleService is
|
|
35
33
|
|
36
34
|
address private _registryAddress;
|
37
35
|
IRegistryService private _registryService;
|
36
|
+
IAccountingService private _accountingService;
|
38
37
|
IComponentService private _componentService;
|
39
38
|
|
40
39
|
function _initialize(
|
@@ -42,20 +41,21 @@ contract BundleService is
|
|
42
41
|
bytes memory data
|
43
42
|
)
|
44
43
|
internal
|
45
|
-
initializer
|
46
44
|
virtual override
|
45
|
+
initializer()
|
47
46
|
{
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
47
|
+
(
|
48
|
+
address authority,
|
49
|
+
address registry
|
50
|
+
) = abi.decode(data, (address, address));
|
51
|
+
|
52
|
+
__Service_init(authority, registry, owner);
|
54
53
|
|
55
54
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
55
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
56
56
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
57
57
|
|
58
|
-
|
58
|
+
_registerInterface(type(IBundleService).interfaceId);
|
59
59
|
}
|
60
60
|
|
61
61
|
|
@@ -65,7 +65,10 @@ contract BundleService is
|
|
65
65
|
)
|
66
66
|
external
|
67
67
|
virtual
|
68
|
+
restricted()
|
68
69
|
{
|
70
|
+
_checkNftType(bundleNftId, BUNDLE());
|
71
|
+
|
69
72
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
70
73
|
InstanceReader instanceReader = instance.getInstanceReader();
|
71
74
|
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
@@ -83,19 +86,18 @@ contract BundleService is
|
|
83
86
|
|
84
87
|
|
85
88
|
function create(
|
86
|
-
IInstance instance,
|
87
|
-
NftId poolNftId,
|
88
89
|
address owner,
|
89
90
|
Fee memory bundleFee,
|
90
|
-
Amount stakingAmount,
|
91
91
|
Seconds lifetime,
|
92
92
|
bytes calldata filter
|
93
93
|
)
|
94
94
|
external
|
95
|
-
|
96
|
-
restricted
|
95
|
+
virtual
|
96
|
+
restricted()
|
97
97
|
returns(NftId bundleNftId)
|
98
98
|
{
|
99
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
100
|
+
|
99
101
|
// register bundle with registry
|
100
102
|
bundleNftId = _registryService.registerBundle(
|
101
103
|
IRegistry.ObjectInfo(
|
@@ -123,17 +125,11 @@ contract BundleService is
|
|
123
125
|
})
|
124
126
|
);
|
125
127
|
|
126
|
-
// bundle book keeping
|
127
|
-
_componentService.increaseBundleBalance(
|
128
|
-
instanceStore,
|
129
|
-
bundleNftId,
|
130
|
-
stakingAmount,
|
131
|
-
AmountLib.zero()); // fee amount
|
132
|
-
|
133
128
|
// put bundle under bundle managemet
|
134
129
|
BundleSet bundleManager = instance.getBundleSet();
|
135
130
|
bundleManager.add(bundleNftId);
|
136
|
-
|
131
|
+
|
132
|
+
emit LogBundleServiceBundleCreated(bundleNftId, poolNftId);
|
137
133
|
}
|
138
134
|
|
139
135
|
|
@@ -148,45 +144,58 @@ contract BundleService is
|
|
148
144
|
virtual
|
149
145
|
restricted()
|
150
146
|
{
|
147
|
+
// checks
|
148
|
+
_checkNftType(policyNftId, POLICY());
|
149
|
+
_checkNftType(bundleNftId, BUNDLE());
|
150
|
+
|
151
151
|
InstanceReader instanceReader = instance.getInstanceReader();
|
152
|
-
StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
|
153
|
-
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
154
152
|
|
155
|
-
|
156
|
-
|
157
|
-
|
153
|
+
{
|
154
|
+
StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
|
155
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
156
|
+
|
157
|
+
// ensure bundle is active and not yet expired
|
158
|
+
if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
|
159
|
+
revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
|
160
|
+
}
|
158
161
|
}
|
159
162
|
|
160
|
-
// ensure bundle capacity is sufficent to collateralize policy
|
161
163
|
InstanceStore instanceStore = instance.getInstanceStore();
|
162
|
-
(
|
163
|
-
Amount balanceAmount,
|
164
|
-
Amount lockedAmount,
|
165
|
-
Amount feeAmount
|
166
|
-
) = instanceStore.getAmounts(bundleNftId);
|
167
164
|
|
168
|
-
|
169
|
-
|
170
|
-
|
165
|
+
{
|
166
|
+
// ensure bundle capacity is sufficent to collateralize policy
|
167
|
+
(
|
168
|
+
Amount balanceAmount,
|
169
|
+
Amount lockedAmount,
|
170
|
+
Amount feeAmount
|
171
|
+
) = instanceStore.getAmounts(bundleNftId);
|
172
|
+
|
173
|
+
Amount capacity = balanceAmount - (lockedAmount + feeAmount);
|
174
|
+
if(capacity < collateralAmount) {
|
175
|
+
revert ErrorBundleServiceCapacityInsufficient(bundleNftId, capacity, collateralAmount);
|
176
|
+
}
|
171
177
|
}
|
172
178
|
|
179
|
+
// effects
|
173
180
|
// updated locked amount
|
174
181
|
instanceStore.increaseLocked(bundleNftId, collateralAmount);
|
175
|
-
|
176
|
-
// link policy to bundle in bundle manger
|
177
|
-
_linkPolicy(instance, policyNftId);
|
178
182
|
}
|
179
183
|
|
180
184
|
|
181
185
|
function lock(NftId bundleNftId)
|
182
186
|
external
|
183
187
|
virtual
|
188
|
+
restricted()
|
184
189
|
{
|
190
|
+
// checks
|
191
|
+
_checkNftType(bundleNftId, BUNDLE());
|
192
|
+
|
185
193
|
(,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
186
194
|
|
187
195
|
// udpate bundle state
|
188
196
|
instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
|
189
197
|
|
198
|
+
// effects
|
190
199
|
// update set of active bundles
|
191
200
|
BundleSet bundleManager = instance.getBundleSet();
|
192
201
|
bundleManager.lock(bundleNftId);
|
@@ -198,9 +207,14 @@ contract BundleService is
|
|
198
207
|
function unlock(NftId bundleNftId)
|
199
208
|
external
|
200
209
|
virtual
|
210
|
+
restricted()
|
201
211
|
{
|
212
|
+
// checks
|
213
|
+
_checkNftType(bundleNftId, BUNDLE());
|
214
|
+
|
202
215
|
(,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
203
216
|
|
217
|
+
// effects
|
204
218
|
// udpate bundle state
|
205
219
|
instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
|
206
220
|
|
@@ -218,10 +232,12 @@ contract BundleService is
|
|
218
232
|
)
|
219
233
|
external
|
220
234
|
virtual
|
221
|
-
restricted
|
222
|
-
returns (Amount
|
235
|
+
restricted()
|
236
|
+
returns (Amount unstakedAmount, Amount feeAmount)
|
223
237
|
{
|
224
|
-
//
|
238
|
+
// checks
|
239
|
+
_checkNftType(bundleNftId, BUNDLE());
|
240
|
+
|
225
241
|
InstanceReader instanceReader = instance.getInstanceReader();
|
226
242
|
|
227
243
|
// ensure no open policies attached to bundle
|
@@ -230,31 +246,38 @@ contract BundleService is
|
|
230
246
|
if(openPolicies > 0) {
|
231
247
|
revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
|
232
248
|
}
|
233
|
-
if(instanceReader.getLockedAmount(bundleNftId) > AmountLib.zero()) {
|
234
|
-
revert ErrorBundleServiceBundleWithLockedCollateral(bundleNftId, instanceReader.getLockedAmount(bundleNftId));
|
235
|
-
}
|
236
|
-
|
237
|
-
InstanceStore instanceStore = instance.getInstanceStore();
|
238
|
-
instanceStore.updateBundleState(bundleNftId, CLOSED());
|
239
|
-
bundleManager.lock(bundleNftId);
|
240
249
|
|
241
|
-
|
242
|
-
|
243
|
-
|
250
|
+
// effects
|
251
|
+
{
|
252
|
+
// update bundle state
|
253
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
254
|
+
instanceStore.updateBundleState(bundleNftId, CLOSED());
|
255
|
+
bundleManager.lock(bundleNftId);
|
256
|
+
|
257
|
+
// decrease bundle counters
|
258
|
+
Amount balanceAmountWithFees = instanceReader.getBalanceAmount(bundleNftId);
|
259
|
+
feeAmount = instanceReader.getFeeAmount(bundleNftId);
|
260
|
+
unstakedAmount = balanceAmountWithFees - feeAmount;
|
261
|
+
_accountingService.decreaseBundleBalance(instanceStore, bundleNftId, unstakedAmount, feeAmount);
|
262
|
+
}
|
244
263
|
}
|
245
264
|
|
246
265
|
/// @inheritdoc IBundleService
|
247
266
|
function stake(
|
248
|
-
|
267
|
+
InstanceReader instanceReader,
|
268
|
+
InstanceStore instanceStore,
|
249
269
|
NftId bundleNftId,
|
250
270
|
Amount amount
|
251
271
|
)
|
252
272
|
external
|
253
273
|
virtual
|
254
|
-
|
274
|
+
restricted()
|
255
275
|
{
|
256
|
-
|
257
|
-
|
276
|
+
// checks
|
277
|
+
_checkNftType(bundleNftId, BUNDLE());
|
278
|
+
|
279
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
280
|
+
StateId bundleState = instanceReader.getBundleState(bundleNftId);
|
258
281
|
|
259
282
|
if( (bundleState != ACTIVE() && bundleState != PAUSED()) // locked bundles can be staked
|
260
283
|
|| bundleInfo.expiredAt < TimestampLib.blockTimestamp()
|
@@ -262,8 +285,9 @@ contract BundleService is
|
|
262
285
|
revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
|
263
286
|
}
|
264
287
|
|
265
|
-
|
266
|
-
|
288
|
+
// effects
|
289
|
+
_accountingService.increaseBundleBalance(
|
290
|
+
instanceStore,
|
267
291
|
bundleNftId,
|
268
292
|
amount,
|
269
293
|
AmountLib.zero());
|
@@ -271,23 +295,25 @@ contract BundleService is
|
|
271
295
|
|
272
296
|
/// @inheritdoc IBundleService
|
273
297
|
function unstake(
|
274
|
-
|
298
|
+
InstanceStore instanceStore,
|
275
299
|
NftId bundleNftId,
|
276
300
|
Amount amount
|
277
301
|
)
|
278
302
|
external
|
279
303
|
virtual
|
280
|
-
|
304
|
+
restricted()
|
281
305
|
returns (Amount unstakedAmount)
|
282
306
|
{
|
283
|
-
|
307
|
+
// checks
|
308
|
+
_checkNftType(bundleNftId, BUNDLE());
|
309
|
+
|
284
310
|
(
|
285
311
|
Amount balanceAmount,
|
286
312
|
Amount lockedAmount,
|
287
313
|
Amount feeAmount
|
288
314
|
) = instanceStore.getAmounts(bundleNftId);
|
289
315
|
|
290
|
-
|
316
|
+
unstakedAmount = amount;
|
291
317
|
Amount availableAmount = balanceAmount - (lockedAmount + feeAmount);
|
292
318
|
|
293
319
|
// if amount is max, then unstake all available
|
@@ -300,22 +326,24 @@ contract BundleService is
|
|
300
326
|
revert ErrorBundleServiceUnstakeAmountExceedsLimit(amount, availableAmount);
|
301
327
|
}
|
302
328
|
|
303
|
-
|
329
|
+
// effects
|
330
|
+
_accountingService.decreaseBundleBalance(
|
304
331
|
instanceStore,
|
305
332
|
bundleNftId,
|
306
333
|
unstakedAmount,
|
307
334
|
AmountLib.zero());
|
308
|
-
|
309
|
-
return unstakedAmount;
|
310
335
|
}
|
311
336
|
|
312
337
|
/// @inheritdoc IBundleService
|
313
338
|
function extend(NftId bundleNftId, Seconds lifetimeExtension)
|
314
339
|
external
|
315
340
|
virtual
|
316
|
-
|
341
|
+
restricted()
|
317
342
|
returns (Timestamp extendedExpiredAt)
|
318
343
|
{
|
344
|
+
// checks
|
345
|
+
_checkNftType(bundleNftId, BUNDLE());
|
346
|
+
|
319
347
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
320
348
|
IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
|
321
349
|
StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
|
@@ -334,17 +362,18 @@ contract BundleService is
|
|
334
362
|
revert ErrorBundleServiceExtensionLifetimeIsZero();
|
335
363
|
}
|
336
364
|
|
365
|
+
// effects
|
337
366
|
bundleInfo.expiredAt = bundleInfo.expiredAt.addSeconds(lifetimeExtension);
|
338
|
-
|
367
|
+
extendedExpiredAt = bundleInfo.expiredAt;
|
339
368
|
|
340
|
-
|
369
|
+
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
341
370
|
|
342
|
-
|
371
|
+
emit LogBundleServiceBundleExtended(bundleNftId, lifetimeExtension, extendedExpiredAt);
|
343
372
|
}
|
344
373
|
|
345
374
|
|
346
375
|
function releaseCollateral(
|
347
|
-
|
376
|
+
InstanceStore instanceStore,
|
348
377
|
NftId policyNftId,
|
349
378
|
NftId bundleNftId,
|
350
379
|
Amount collateralAmount
|
@@ -353,96 +382,12 @@ contract BundleService is
|
|
353
382
|
virtual
|
354
383
|
restricted()
|
355
384
|
{
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
/// @dev unlinks policy from bundle
|
360
|
-
function unlinkPolicy(
|
361
|
-
IInstance instance,
|
362
|
-
NftId policyNftId
|
363
|
-
)
|
364
|
-
external
|
365
|
-
virtual
|
366
|
-
restricted
|
367
|
-
{
|
368
|
-
// ensure policy is closeable
|
369
|
-
if (!instance.getInstanceReader().policyIsCloseable(policyNftId)) {
|
370
|
-
revert ErrorBundleServicePolicyNotCloseable(policyNftId);
|
371
|
-
}
|
372
|
-
|
373
|
-
instance.getBundleSet().unlinkPolicy(policyNftId);
|
374
|
-
}
|
375
|
-
|
376
|
-
/// @inheritdoc IBundleService
|
377
|
-
function withdrawBundleFees(NftId bundleNftId, Amount amount)
|
378
|
-
public
|
379
|
-
virtual
|
380
|
-
// TODO: restricted() (once #462 is done)
|
381
|
-
returns (Amount withdrawnAmount)
|
382
|
-
{
|
383
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
384
|
-
InstanceReader reader = instance.getInstanceReader();
|
385
|
-
|
386
|
-
IComponents.ComponentInfo memory poolInfo = reader.getComponentInfo(poolNftId);
|
387
|
-
address poolWallet = poolInfo.wallet;
|
388
|
-
|
389
|
-
IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
390
|
-
|
391
|
-
// determine withdrawn amount
|
392
|
-
withdrawnAmount = amount;
|
393
|
-
if (withdrawnAmount.gte(AmountLib.max())) {
|
394
|
-
withdrawnAmount = reader.getFeeAmount(bundleNftId);
|
395
|
-
} else {
|
396
|
-
if (withdrawnAmount.gt(reader.getFeeAmount(bundleNftId))) {
|
397
|
-
revert ErrorBundleServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
|
398
|
-
}
|
399
|
-
}
|
400
|
-
|
401
|
-
if (withdrawnAmount.eqz()) {
|
402
|
-
revert ErrorBundleServiceFeesWithdrawAmountIsZero();
|
403
|
-
}
|
404
|
-
|
405
|
-
// check allowance
|
406
|
-
IERC20Metadata token = IERC20Metadata(poolInfo.token);
|
407
|
-
uint256 tokenAllowance = token.allowance(poolWallet, address(poolInfo.tokenHandler));
|
408
|
-
if (tokenAllowance < withdrawnAmount.toInt()) {
|
409
|
-
revert ErrorBundleServiceWalletAllowanceTooSmall(poolWallet, address(poolInfo.tokenHandler), tokenAllowance, withdrawnAmount.toInt());
|
410
|
-
}
|
411
|
-
|
412
|
-
// decrease fee counters by withdrawnAmount
|
413
|
-
{
|
414
|
-
InstanceStore store = instance.getInstanceStore();
|
415
|
-
// decrease fee amount of the bundle
|
416
|
-
_componentService.decreaseBundleBalance(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
|
417
|
-
// decrease pool balance
|
418
|
-
_componentService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
|
419
|
-
}
|
420
|
-
|
421
|
-
// transfer amount to bundle owner
|
422
|
-
{
|
423
|
-
address owner = getRegistry().ownerOf(bundleNftId);
|
424
|
-
// TODO: centralize token handling (issue #471)
|
425
|
-
poolInfo.tokenHandler.transfer(poolWallet, owner, withdrawnAmount);
|
385
|
+
_checkNftType(policyNftId, POLICY());
|
386
|
+
_checkNftType(bundleNftId, BUNDLE());
|
426
387
|
|
427
|
-
|
428
|
-
}
|
388
|
+
instanceStore.decreaseLocked(bundleNftId, collateralAmount);
|
429
389
|
}
|
430
390
|
|
431
|
-
/// @dev links policy to bundle
|
432
|
-
function _linkPolicy(IInstance instance, NftId policyNftId)
|
433
|
-
internal
|
434
|
-
{
|
435
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
436
|
-
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
437
|
-
|
438
|
-
// ensure policy has not yet been activated in a previous tx already
|
439
|
-
if (policyInfo.activatedAt.gtz() && policyInfo.activatedAt < TimestampLib.blockTimestamp()) {
|
440
|
-
revert BundleSet.ErrorBundleSetPolicyAlreadyActivated(policyNftId);
|
441
|
-
}
|
442
|
-
|
443
|
-
BundleSet bundleManager = instance.getBundleSet();
|
444
|
-
bundleManager.linkPolicy(policyNftId);
|
445
|
-
}
|
446
391
|
|
447
392
|
function _getDomain() internal pure override returns(ObjectType) {
|
448
393
|
return BUNDLE();
|
@@ -12,15 +12,15 @@ contract BundleServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with pool service implementation
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
|
-
ProxyManager(registryAddress)
|
19
18
|
{
|
20
|
-
BundleService
|
21
|
-
bytes memory data = abi.encode(
|
22
|
-
IVersionable versionable =
|
23
|
-
|
19
|
+
BundleService svc = new BundleService{salt: salt}();
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
|
+
address(svc),
|
24
24
|
data,
|
25
25
|
salt);
|
26
26
|
|
@@ -1,18 +1,21 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IService} from "../shared/IService.sol";
|
5
|
+
import {IInstance} from "../instance/IInstance.sol";
|
6
|
+
|
4
7
|
import {Amount} from "../type/Amount.sol";
|
5
8
|
import {NftId} from "../type/NftId.sol";
|
6
9
|
import {Fee} from "../type/Fee.sol";
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import {IInstance} from "../instance/IInstance.sol";
|
10
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
11
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
10
12
|
import {Seconds} from "../type/Seconds.sol";
|
11
13
|
import {StateId} from "../type/StateId.sol";
|
12
14
|
import {Timestamp} from "../type/Timestamp.sol";
|
13
15
|
|
14
16
|
interface IBundleService is IService {
|
15
17
|
|
18
|
+
event LogBundleServiceBundleCreated(NftId bundleNftId, NftId poolNftId);
|
16
19
|
event LogBundleServiceBundleActivated(NftId bundleNftId);
|
17
20
|
event LogBundleServiceBundleLocked(NftId bundleNftId);
|
18
21
|
|
@@ -25,27 +28,17 @@ interface IBundleService is IService {
|
|
25
28
|
error ErrorBundleServiceBundlePoolMismatch(NftId bundleNftId, NftId expectedPool, NftId actualPool);
|
26
29
|
|
27
30
|
error ErrorBundleServicePolicyNotCloseable(NftId policyNftId);
|
28
|
-
|
29
|
-
error ErrorBundleServiceFeesWithdrawAmountExceedsLimit(Amount amount, Amount limit);
|
30
|
-
error ErrorBundleServiceFeesWithdrawAmountIsZero();
|
31
|
-
error ErrorBundleServiceWalletAllowanceTooSmall(address wallet, address tokenHandler, uint256 allowance, uint256 amount);
|
32
|
-
|
31
|
+
|
33
32
|
error ErrorBundleServiceUnstakeAmountExceedsLimit(Amount amount, Amount limit);
|
34
|
-
error ErrorBundleServiceBundleWithLockedCollateral(NftId bundleNftId, Amount lockedCollateralAmount);
|
35
33
|
|
36
34
|
error ErrorBundleServiceExtensionLifetimeIsZero();
|
37
35
|
|
38
|
-
event LogBundleServiceFeesWithdrawn(NftId bundleNftId, address recipient, address tokenAddress, Amount amount);
|
39
36
|
event LogBundleServiceBundleExtended(NftId bundleNftId, Seconds lifetimeExtension, Timestamp extendedExpiredAt);
|
40
37
|
|
41
|
-
/// @dev
|
42
|
-
/// may only be called by pool service
|
38
|
+
/// @dev Create a new bundle for the specified attributes.
|
43
39
|
function create(
|
44
|
-
IInstance instance, // instance relevant for bundle
|
45
|
-
NftId poolNftId, // the pool the bundle will be linked to
|
46
40
|
address owner, // initial bundle owner
|
47
41
|
Fee memory fee, // fees deducted from premium that go to bundle owner
|
48
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
49
42
|
Seconds lifetime, // initial duration for which new policies are covered
|
50
43
|
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
51
44
|
)
|
@@ -55,15 +48,16 @@ interface IBundleService is IService {
|
|
55
48
|
|
56
49
|
/// @dev increase bundle stakes by the specified amount. bundle must not be expired or closed
|
57
50
|
/// may only be called by the pool service
|
58
|
-
function stake(
|
51
|
+
function stake(
|
52
|
+
InstanceReader instanceReader,
|
53
|
+
InstanceStore instanceStore,
|
54
|
+
NftId bundleNftId,
|
55
|
+
Amount amount
|
56
|
+
) external;
|
59
57
|
|
60
58
|
/// @dev decrease bundle stakes by the specified amount
|
61
59
|
/// may only be called by the pool service
|
62
|
-
|
63
|
-
/// @param bundleNftId the bundle nft id
|
64
|
-
/// @param amount the amount to unstake (set to AmountLib.max() to unstake all available stakes)
|
65
|
-
/// @return unstakedAmount the effective unstaked amount
|
66
|
-
function unstake(IInstance instance, NftId bundleNftId, Amount amount) external returns (Amount unstakedAmount);
|
60
|
+
function unstake(InstanceStore instanceStore, NftId bundleNftId, Amount amount) external returns (Amount unstakedAmount);
|
67
61
|
|
68
62
|
/// @dev extend the lifetime of the bundle by the specified time in seconds
|
69
63
|
function extend(NftId bundleNftId, Seconds lifetimeExtension) external returns (Timestamp extendedExpiredAt);
|
@@ -82,6 +76,8 @@ interface IBundleService is IService {
|
|
82
76
|
/// only open bundles (active or locked) may be closed
|
83
77
|
/// to close a bundle it may not have any non-closed polices attached to it
|
84
78
|
/// may only be called by registered and unlocked pool components
|
79
|
+
/// @return balanceAmount the unstaked amount that was remaining in the bundle
|
80
|
+
/// @return feeAmount the fee amount that was remaining for the bundle
|
85
81
|
function close(
|
86
82
|
IInstance instance,
|
87
83
|
NftId bundleNftId
|
@@ -111,24 +107,9 @@ interface IBundleService is IService {
|
|
111
107
|
/// @dev releases the specified collateral in the bundle
|
112
108
|
/// may only be called by pool service
|
113
109
|
function releaseCollateral(
|
114
|
-
|
110
|
+
InstanceStore instanceStore,
|
115
111
|
NftId policyNftId,
|
116
112
|
NftId bundleNftId,
|
117
113
|
Amount collateralAmount
|
118
114
|
) external;
|
119
|
-
|
120
|
-
/// @dev unlink policy from bundle
|
121
|
-
/// policy may only be unlinked if policy is closeable
|
122
|
-
/// may only be called by pool service
|
123
|
-
function unlinkPolicy(
|
124
|
-
IInstance instance,
|
125
|
-
NftId policyNftId
|
126
|
-
) external;
|
127
|
-
|
128
|
-
/// @dev Withdraw bundle feeds for the given bundle
|
129
|
-
/// @param bundleNftId the bundle Nft Id
|
130
|
-
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
131
|
-
/// @return withdrawnAmount the effective withdrawn amount
|
132
|
-
function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
|
133
|
-
|
134
115
|
}
|
@@ -2,6 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
5
6
|
import {Fee} from "../type/Fee.sol";
|
6
7
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
7
8
|
import {IComponents} from "../instance/module/IComponents.sol";
|
@@ -20,21 +21,19 @@ interface IPoolComponent is IInstanceLinkedComponent {
|
|
20
21
|
|
21
22
|
event LogPoolVerifiedByPool(address pool, NftId applicationNftId, Amount collateralizationAmount);
|
22
23
|
|
23
|
-
/// @dev
|
24
|
-
///
|
25
|
-
///
|
26
|
-
///
|
24
|
+
/// @dev This is a callback function that is called by the product service when underwriting a policy.
|
25
|
+
/// The pool has the option to check the details and object to underwriting by reverting.
|
26
|
+
/// The function is only called for "active" pools that ask to be involved/notified.
|
27
|
+
/// The default implementation is empty.
|
27
28
|
function verifyApplication(
|
28
29
|
NftId applicationNftId,
|
29
|
-
bytes memory applicationData,
|
30
30
|
NftId bundleNftId,
|
31
|
-
bytes memory bundleFilter,
|
32
31
|
Amount collateralizationAmount
|
33
32
|
) external;
|
34
33
|
|
35
|
-
/// @dev
|
36
|
-
///
|
37
|
-
/// default implementation returns true
|
34
|
+
/// @dev Returns true iff the application matches with the bundle.
|
35
|
+
/// This is a callback function that is only called if a pool declares itself as a verifying pool
|
36
|
+
/// The default implementation returns true.
|
38
37
|
function applicationMatchesBundle(
|
39
38
|
NftId applicationNftId,
|
40
39
|
bytes memory applicationData,
|
@@ -46,13 +45,18 @@ interface IPoolComponent is IInstanceLinkedComponent {
|
|
46
45
|
view
|
47
46
|
returns (bool isMatching);
|
48
47
|
|
49
|
-
/// @dev Withdraw bundle feeds for the given bundle
|
50
|
-
/// @param bundleNftId the bundle Nft Id
|
51
|
-
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
52
|
-
/// @return withdrawnAmount the effective withdrawn amount
|
53
|
-
function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
|
54
48
|
|
55
|
-
/// @dev
|
49
|
+
/// @dev This is a callback function that is called by the claim service when a claim is confirmed.
|
50
|
+
/// The pool has the option to implement custom behavirous such as triggering a reinsurance claim or blocking the claim confirmaation.
|
51
|
+
/// The default implementation is empty.
|
52
|
+
function processConfirmedClaim(
|
53
|
+
NftId policyNftId,
|
54
|
+
ClaimId claimId,
|
55
|
+
Amount amount
|
56
|
+
) external;
|
57
|
+
|
58
|
+
|
59
|
+
/// @dev Returns initial pool specific infos for this pool
|
56
60
|
function getInitialPoolInfo() external view returns (IComponents.PoolInfo memory info);
|
57
61
|
|
58
62
|
}
|