@etherisc/gif-next 0.0.2-f13c010-035 → 0.0.2-f15b559-661
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 +148 -62
- 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 +149 -21
- 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 +82 -12
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +108 -188
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -89
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +244 -190
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +82 -56
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -58
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +120 -73
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +101 -164
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +152 -33
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +256 -296
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
- 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 +139 -131
- 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 +90 -126
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +225 -162
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +638 -301
- 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 +118 -39
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +77 -20
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +163 -56
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +375 -99
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +140 -40
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +586 -215
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +104 -74
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -27
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +412 -372
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/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 +74 -154
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +44 -58
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +58 -90
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +112 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +69 -27
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +57 -104
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +152 -33
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +127 -331
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +53 -87
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +56 -136
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -97
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +164 -217
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -128
- package/artifacts/contracts/pool/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 +302 -353
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +93 -51
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +105 -63
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +163 -175
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -179
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +74 -64
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +112 -56
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +150 -144
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +37 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +211 -180
- 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 +76 -50
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +99 -76
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -38
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +163 -175
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +114 -77
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +62 -24
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +88 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +262 -220
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +42 -20
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +318 -52
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +57 -75
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +225 -439
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +74 -64
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +44 -44
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +125 -282
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +44 -58
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -89
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +289 -112
- 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 +70 -30
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +62 -80
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +56 -3
- 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 +134 -173
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +58 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +101 -49
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +47 -25
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +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/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +18 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +177 -84
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +277 -229
- package/contracts/authorization/IAccessAdmin.sol +13 -7
- package/contracts/authorization/IAuthorization.sol +15 -1
- package/contracts/distribution/BasicDistribution.sol +13 -11
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +42 -38
- package/contracts/distribution/DistributionService.sol +54 -51
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +19 -19
- package/contracts/examples/fire/FirePool.sol +22 -5
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +32 -10
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +33 -3
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +51 -25
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +13 -9
- package/contracts/instance/IInstanceService.sol +9 -9
- package/contracts/instance/Instance.sol +33 -18
- package/contracts/instance/InstanceAdmin.sol +242 -84
- package/contracts/instance/InstanceAuthorizationV3.sol +50 -31
- package/contracts/instance/InstanceReader.sol +174 -32
- package/contracts/instance/InstanceService.sol +73 -82
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +4 -4
- package/contracts/instance/module/IDistribution.sol +2 -1
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +92 -73
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +24 -3
- package/contracts/pool/BasicPoolAuthorization.sol +27 -8
- package/contracts/pool/BundleService.sol +47 -145
- 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 -60
- package/contracts/pool/Pool.sol +106 -96
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +427 -214
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +15 -15
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +9 -11
- package/contracts/product/BasicProductAuthorization.sol +24 -10
- package/contracts/product/ClaimService.sol +157 -137
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +26 -11
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +5 -8
- package/contracts/product/PolicyService.sol +244 -253
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +23 -19
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +66 -52
- package/contracts/product/RiskService.sol +79 -31
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +10 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +16 -3
- package/contracts/registry/RegistryAdmin.sol +132 -226
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +129 -119
- package/contracts/registry/ServiceAuthorizationV3.sol +93 -40
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +61 -105
- package/contracts/shared/ComponentService.sol +301 -295
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +16 -14
- package/contracts/shared/ContractLib.sol +224 -9
- package/contracts/shared/IComponent.sol +4 -17
- package/contracts/shared/IComponentService.sol +16 -25
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +4 -20
- package/contracts/shared/NftOwnable.sol +4 -4
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +44 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +263 -105
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +5 -8
- package/contracts/staking/IStakingService.sol +8 -0
- package/contracts/staking/StakeManagerLib.sol +1 -1
- package/contracts/staking/Staking.sol +62 -33
- package/contracts/staking/StakingReader.sol +1 -1
- package/contracts/staking/StakingService.sol +35 -12
- 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 +24 -4
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +9 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +3 -3
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +0 -206
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentServiceHelperLib.sol +0 -118
@@ -1,6 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
4
5
|
import {IBundle} from "../instance/module/IBundle.sol";
|
5
6
|
import {IBundleService} from "./IBundleService.sol";
|
6
7
|
import {IComponents} from "../instance/module/IComponents.sol";
|
@@ -9,7 +10,6 @@ import {IRegistry} from "../registry/IRegistry.sol";
|
|
9
10
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
10
11
|
import {IInstance} from "../instance/IInstance.sol";
|
11
12
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
12
|
-
import {IPolicy} from "../instance/module/IPolicy.sol";
|
13
13
|
|
14
14
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
15
15
|
import {BundleSet} from "../instance/BundleSet.sol";
|
@@ -17,7 +17,7 @@ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol
|
|
17
17
|
import {Fee} from "../type/Fee.sol";
|
18
18
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
19
19
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
20
|
-
import {ObjectType, COMPONENT, POOL, BUNDLE, POLICY, REGISTRY} from "../type/ObjectType.sol";
|
20
|
+
import {ObjectType, ACCOUNTING, COMPONENT, POOL, BUNDLE, POLICY, REGISTRY} from "../type/ObjectType.sol";
|
21
21
|
import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
|
22
22
|
import {Seconds} from "../type/Seconds.sol";
|
23
23
|
import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
@@ -33,6 +33,7 @@ contract BundleService is
|
|
33
33
|
|
34
34
|
address private _registryAddress;
|
35
35
|
IRegistryService private _registryService;
|
36
|
+
IAccountingService private _accountingService;
|
36
37
|
IComponentService private _componentService;
|
37
38
|
|
38
39
|
function _initialize(
|
@@ -44,13 +45,14 @@ contract BundleService is
|
|
44
45
|
initializer()
|
45
46
|
{
|
46
47
|
(
|
47
|
-
address
|
48
|
-
address
|
48
|
+
address authority,
|
49
|
+
address registry
|
49
50
|
) = abi.decode(data, (address, address));
|
50
51
|
|
51
|
-
|
52
|
+
__Service_init(authority, registry, owner);
|
52
53
|
|
53
54
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
55
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
54
56
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
55
57
|
|
56
58
|
_registerInterface(type(IBundleService).interfaceId);
|
@@ -63,6 +65,7 @@ contract BundleService is
|
|
63
65
|
)
|
64
66
|
external
|
65
67
|
virtual
|
68
|
+
restricted()
|
66
69
|
{
|
67
70
|
_checkNftType(bundleNftId, BUNDLE());
|
68
71
|
|
@@ -83,20 +86,17 @@ 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
|
-
|
99
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
100
100
|
|
101
101
|
// register bundle with registry
|
102
102
|
bundleNftId = _registryService.registerBundle(
|
@@ -125,19 +125,11 @@ contract BundleService is
|
|
125
125
|
})
|
126
126
|
);
|
127
127
|
|
128
|
-
if (stakingAmount.gtz()) {
|
129
|
-
// bundle book keeping
|
130
|
-
_componentService.increaseBundleBalance(
|
131
|
-
instanceStore,
|
132
|
-
bundleNftId,
|
133
|
-
stakingAmount,
|
134
|
-
AmountLib.zero()); // fee amount
|
135
|
-
}
|
136
|
-
|
137
128
|
// put bundle under bundle managemet
|
138
129
|
BundleSet bundleManager = instance.getBundleSet();
|
139
130
|
bundleManager.add(bundleNftId);
|
140
|
-
|
131
|
+
|
132
|
+
emit LogBundleServiceBundleCreated(bundleNftId, poolNftId);
|
141
133
|
}
|
142
134
|
|
143
135
|
|
@@ -152,6 +144,7 @@ contract BundleService is
|
|
152
144
|
virtual
|
153
145
|
restricted()
|
154
146
|
{
|
147
|
+
// checks
|
155
148
|
_checkNftType(policyNftId, POLICY());
|
156
149
|
_checkNftType(bundleNftId, BUNDLE());
|
157
150
|
|
@@ -183,18 +176,18 @@ contract BundleService is
|
|
183
176
|
}
|
184
177
|
}
|
185
178
|
|
179
|
+
// effects
|
186
180
|
// updated locked amount
|
187
181
|
instanceStore.increaseLocked(bundleNftId, collateralAmount);
|
188
|
-
|
189
|
-
// link policy to bundle in bundle manger
|
190
|
-
_linkPolicy(instance, policyNftId);
|
191
182
|
}
|
192
183
|
|
193
184
|
|
194
185
|
function lock(NftId bundleNftId)
|
195
186
|
external
|
196
187
|
virtual
|
188
|
+
restricted()
|
197
189
|
{
|
190
|
+
// checks
|
198
191
|
_checkNftType(bundleNftId, BUNDLE());
|
199
192
|
|
200
193
|
(,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
@@ -202,6 +195,7 @@ contract BundleService is
|
|
202
195
|
// udpate bundle state
|
203
196
|
instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
|
204
197
|
|
198
|
+
// effects
|
205
199
|
// update set of active bundles
|
206
200
|
BundleSet bundleManager = instance.getBundleSet();
|
207
201
|
bundleManager.lock(bundleNftId);
|
@@ -213,11 +207,14 @@ contract BundleService is
|
|
213
207
|
function unlock(NftId bundleNftId)
|
214
208
|
external
|
215
209
|
virtual
|
210
|
+
restricted()
|
216
211
|
{
|
212
|
+
// checks
|
217
213
|
_checkNftType(bundleNftId, BUNDLE());
|
218
214
|
|
219
215
|
(,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
220
216
|
|
217
|
+
// effects
|
221
218
|
// udpate bundle state
|
222
219
|
instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
|
223
220
|
|
@@ -235,9 +232,10 @@ contract BundleService is
|
|
235
232
|
)
|
236
233
|
external
|
237
234
|
virtual
|
238
|
-
restricted
|
235
|
+
restricted()
|
239
236
|
returns (Amount unstakedAmount, Amount feeAmount)
|
240
237
|
{
|
238
|
+
// checks
|
241
239
|
_checkNftType(bundleNftId, BUNDLE());
|
242
240
|
|
243
241
|
InstanceReader instanceReader = instance.getInstanceReader();
|
@@ -249,6 +247,7 @@ contract BundleService is
|
|
249
247
|
revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
|
250
248
|
}
|
251
249
|
|
250
|
+
// effects
|
252
251
|
{
|
253
252
|
// update bundle state
|
254
253
|
InstanceStore instanceStore = instance.getInstanceStore();
|
@@ -259,24 +258,26 @@ contract BundleService is
|
|
259
258
|
Amount balanceAmountWithFees = instanceReader.getBalanceAmount(bundleNftId);
|
260
259
|
feeAmount = instanceReader.getFeeAmount(bundleNftId);
|
261
260
|
unstakedAmount = balanceAmountWithFees - feeAmount;
|
262
|
-
|
261
|
+
_accountingService.decreaseBundleBalance(instanceStore, bundleNftId, unstakedAmount, feeAmount);
|
263
262
|
}
|
264
263
|
}
|
265
264
|
|
266
265
|
/// @inheritdoc IBundleService
|
267
266
|
function stake(
|
268
|
-
|
267
|
+
InstanceReader instanceReader,
|
268
|
+
InstanceStore instanceStore,
|
269
269
|
NftId bundleNftId,
|
270
270
|
Amount amount
|
271
271
|
)
|
272
272
|
external
|
273
273
|
virtual
|
274
|
-
|
274
|
+
restricted()
|
275
275
|
{
|
276
|
+
// checks
|
276
277
|
_checkNftType(bundleNftId, BUNDLE());
|
277
278
|
|
278
|
-
IBundle.BundleInfo memory bundleInfo =
|
279
|
-
StateId bundleState =
|
279
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
280
|
+
StateId bundleState = instanceReader.getBundleState(bundleNftId);
|
280
281
|
|
281
282
|
if( (bundleState != ACTIVE() && bundleState != PAUSED()) // locked bundles can be staked
|
282
283
|
|| bundleInfo.expiredAt < TimestampLib.blockTimestamp()
|
@@ -284,8 +285,9 @@ contract BundleService is
|
|
284
285
|
revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
|
285
286
|
}
|
286
287
|
|
287
|
-
|
288
|
-
|
288
|
+
// effects
|
289
|
+
_accountingService.increaseBundleBalance(
|
290
|
+
instanceStore,
|
289
291
|
bundleNftId,
|
290
292
|
amount,
|
291
293
|
AmountLib.zero());
|
@@ -293,18 +295,18 @@ contract BundleService is
|
|
293
295
|
|
294
296
|
/// @inheritdoc IBundleService
|
295
297
|
function unstake(
|
296
|
-
|
298
|
+
InstanceStore instanceStore,
|
297
299
|
NftId bundleNftId,
|
298
300
|
Amount amount
|
299
301
|
)
|
300
302
|
external
|
301
303
|
virtual
|
302
|
-
|
304
|
+
restricted()
|
303
305
|
returns (Amount unstakedAmount)
|
304
306
|
{
|
307
|
+
// checks
|
305
308
|
_checkNftType(bundleNftId, BUNDLE());
|
306
309
|
|
307
|
-
InstanceStore instanceStore = instance.getInstanceStore();
|
308
310
|
(
|
309
311
|
Amount balanceAmount,
|
310
312
|
Amount lockedAmount,
|
@@ -324,7 +326,8 @@ contract BundleService is
|
|
324
326
|
revert ErrorBundleServiceUnstakeAmountExceedsLimit(amount, availableAmount);
|
325
327
|
}
|
326
328
|
|
327
|
-
|
329
|
+
// effects
|
330
|
+
_accountingService.decreaseBundleBalance(
|
328
331
|
instanceStore,
|
329
332
|
bundleNftId,
|
330
333
|
unstakedAmount,
|
@@ -335,9 +338,10 @@ contract BundleService is
|
|
335
338
|
function extend(NftId bundleNftId, Seconds lifetimeExtension)
|
336
339
|
external
|
337
340
|
virtual
|
338
|
-
|
341
|
+
restricted()
|
339
342
|
returns (Timestamp extendedExpiredAt)
|
340
343
|
{
|
344
|
+
// checks
|
341
345
|
_checkNftType(bundleNftId, BUNDLE());
|
342
346
|
|
343
347
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
@@ -358,17 +362,18 @@ contract BundleService is
|
|
358
362
|
revert ErrorBundleServiceExtensionLifetimeIsZero();
|
359
363
|
}
|
360
364
|
|
365
|
+
// effects
|
361
366
|
bundleInfo.expiredAt = bundleInfo.expiredAt.addSeconds(lifetimeExtension);
|
362
|
-
|
367
|
+
extendedExpiredAt = bundleInfo.expiredAt;
|
363
368
|
|
364
|
-
|
369
|
+
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
365
370
|
|
366
|
-
|
371
|
+
emit LogBundleServiceBundleExtended(bundleNftId, lifetimeExtension, extendedExpiredAt);
|
367
372
|
}
|
368
373
|
|
369
374
|
|
370
375
|
function releaseCollateral(
|
371
|
-
|
376
|
+
InstanceStore instanceStore,
|
372
377
|
NftId policyNftId,
|
373
378
|
NftId bundleNftId,
|
374
379
|
Amount collateralAmount
|
@@ -380,112 +385,9 @@ contract BundleService is
|
|
380
385
|
_checkNftType(policyNftId, POLICY());
|
381
386
|
_checkNftType(bundleNftId, BUNDLE());
|
382
387
|
|
383
|
-
|
384
|
-
}
|
385
|
-
|
386
|
-
/// @dev unlinks policy from bundle
|
387
|
-
function unlinkPolicy(
|
388
|
-
IInstance instance,
|
389
|
-
NftId policyNftId
|
390
|
-
)
|
391
|
-
external
|
392
|
-
virtual
|
393
|
-
restricted
|
394
|
-
{
|
395
|
-
_checkNftType(policyNftId, POLICY());
|
396
|
-
|
397
|
-
// ensure policy is closeable
|
398
|
-
if (!policyIsCloseable(instance, policyNftId)) {
|
399
|
-
revert ErrorBundleServicePolicyNotCloseable(policyNftId);
|
400
|
-
}
|
401
|
-
|
402
|
-
instance.getBundleSet().unlinkPolicy(policyNftId);
|
388
|
+
instanceStore.decreaseLocked(bundleNftId, collateralAmount);
|
403
389
|
}
|
404
390
|
|
405
|
-
/// @inheritdoc IBundleService
|
406
|
-
function withdrawBundleFees(NftId bundleNftId, Amount amount)
|
407
|
-
public
|
408
|
-
virtual
|
409
|
-
// TODO: restricted() (once #462 is done)
|
410
|
-
returns (Amount withdrawnAmount)
|
411
|
-
{
|
412
|
-
_checkNftType(bundleNftId, BUNDLE());
|
413
|
-
|
414
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
415
|
-
InstanceReader reader = instance.getInstanceReader();
|
416
|
-
|
417
|
-
IComponents.ComponentInfo memory poolInfo = reader.getComponentInfo(poolNftId);
|
418
|
-
address poolWallet = poolInfo.wallet;
|
419
|
-
|
420
|
-
// IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
421
|
-
|
422
|
-
// determine withdrawn amount
|
423
|
-
withdrawnAmount = amount;
|
424
|
-
if (withdrawnAmount.gte(AmountLib.max())) {
|
425
|
-
withdrawnAmount = reader.getFeeAmount(bundleNftId);
|
426
|
-
} else {
|
427
|
-
if (withdrawnAmount.gt(reader.getFeeAmount(bundleNftId))) {
|
428
|
-
revert ErrorBundleServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
|
429
|
-
}
|
430
|
-
}
|
431
|
-
|
432
|
-
// decrease fee counters by withdrawnAmount
|
433
|
-
{
|
434
|
-
InstanceStore store = instance.getInstanceStore();
|
435
|
-
// decrease fee amount of the bundle
|
436
|
-
_componentService.decreaseBundleBalance(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
|
437
|
-
// decrease pool balance
|
438
|
-
_componentService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
|
439
|
-
}
|
440
|
-
|
441
|
-
// transfer amount to bundle owner
|
442
|
-
{
|
443
|
-
address owner = getRegistry().ownerOf(bundleNftId);
|
444
|
-
emit LogBundleServiceFeesWithdrawn(bundleNftId, owner, address(poolInfo.token), withdrawnAmount);
|
445
|
-
poolInfo.tokenHandler.distributeTokens(poolWallet, owner, withdrawnAmount);
|
446
|
-
}
|
447
|
-
}
|
448
|
-
|
449
|
-
/// @inheritdoc IBundleService
|
450
|
-
function policyIsCloseable(IInstance instance, NftId policyNftId)
|
451
|
-
public
|
452
|
-
view
|
453
|
-
returns (bool isCloseable)
|
454
|
-
{
|
455
|
-
_checkNftType(policyNftId, POLICY());
|
456
|
-
|
457
|
-
IPolicy.PolicyInfo memory info = instance.getInstanceReader().getPolicyInfo(policyNftId);
|
458
|
-
|
459
|
-
if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
|
460
|
-
if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
|
461
|
-
if (info.closedAt.gtz()) { return false; } // not closeable: already closed
|
462
|
-
if (info.openClaimsCount > 0) { return false; } // not closeable: has open claims
|
463
|
-
|
464
|
-
// closeable: if sum of claims matches sum insured a policy may be closed prior to the expiry date
|
465
|
-
if (info.claimAmount == info.sumInsuredAmount) { return true; }
|
466
|
-
|
467
|
-
// not closeable: not yet expired
|
468
|
-
if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
|
469
|
-
|
470
|
-
// all conditionsl to close the policy are met
|
471
|
-
return true;
|
472
|
-
}
|
473
|
-
|
474
|
-
/// @dev links policy to bundle
|
475
|
-
function _linkPolicy(IInstance instance, NftId policyNftId)
|
476
|
-
internal
|
477
|
-
{
|
478
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
479
|
-
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
480
|
-
|
481
|
-
// ensure policy has not yet been activated in a previous tx already
|
482
|
-
if (policyInfo.activatedAt.gtz() && policyInfo.activatedAt < TimestampLib.blockTimestamp()) {
|
483
|
-
revert BundleSet.ErrorBundleSetPolicyAlreadyActivated(policyNftId);
|
484
|
-
}
|
485
|
-
|
486
|
-
BundleSet bundleManager = instance.getBundleSet();
|
487
|
-
bundleManager.linkPolicy(policyNftId);
|
488
|
-
}
|
489
391
|
|
490
392
|
function _getDomain() internal pure override returns(ObjectType) {
|
491
393
|
return BUNDLE();
|
@@ -17,7 +17,7 @@ contract BundleServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
BundleService svc = new BundleService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|
@@ -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,24 +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
31
|
|
31
32
|
error ErrorBundleServiceUnstakeAmountExceedsLimit(Amount amount, Amount limit);
|
32
33
|
|
33
34
|
error ErrorBundleServiceExtensionLifetimeIsZero();
|
34
35
|
|
35
|
-
event LogBundleServiceFeesWithdrawn(NftId bundleNftId, address recipient, address tokenAddress, Amount amount);
|
36
36
|
event LogBundleServiceBundleExtended(NftId bundleNftId, Seconds lifetimeExtension, Timestamp extendedExpiredAt);
|
37
37
|
|
38
|
-
/// @dev
|
39
|
-
/// may only be called by pool service
|
38
|
+
/// @dev Create a new bundle for the specified attributes.
|
40
39
|
function create(
|
41
|
-
IInstance instance, // instance relevant for bundle
|
42
|
-
NftId poolNftId, // the pool the bundle will be linked to
|
43
40
|
address owner, // initial bundle owner
|
44
41
|
Fee memory fee, // fees deducted from premium that go to bundle owner
|
45
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
46
42
|
Seconds lifetime, // initial duration for which new policies are covered
|
47
43
|
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
48
44
|
)
|
@@ -52,15 +48,16 @@ interface IBundleService is IService {
|
|
52
48
|
|
53
49
|
/// @dev increase bundle stakes by the specified amount. bundle must not be expired or closed
|
54
50
|
/// may only be called by the pool service
|
55
|
-
function stake(
|
51
|
+
function stake(
|
52
|
+
InstanceReader instanceReader,
|
53
|
+
InstanceStore instanceStore,
|
54
|
+
NftId bundleNftId,
|
55
|
+
Amount amount
|
56
|
+
) external;
|
56
57
|
|
57
58
|
/// @dev decrease bundle stakes by the specified amount
|
58
59
|
/// may only be called by the pool service
|
59
|
-
|
60
|
-
/// @param bundleNftId the bundle nft id
|
61
|
-
/// @param amount the amount to unstake (set to AmountLib.max() to unstake all available stakes)
|
62
|
-
/// @return unstakedAmount the effective unstaked amount
|
63
|
-
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);
|
64
61
|
|
65
62
|
/// @dev extend the lifetime of the bundle by the specified time in seconds
|
66
63
|
function extend(NftId bundleNftId, Seconds lifetimeExtension) external returns (Timestamp extendedExpiredAt);
|
@@ -110,34 +107,9 @@ interface IBundleService is IService {
|
|
110
107
|
/// @dev releases the specified collateral in the bundle
|
111
108
|
/// may only be called by pool service
|
112
109
|
function releaseCollateral(
|
113
|
-
|
110
|
+
InstanceStore instanceStore,
|
114
111
|
NftId policyNftId,
|
115
112
|
NftId bundleNftId,
|
116
113
|
Amount collateralAmount
|
117
114
|
) external;
|
118
|
-
|
119
|
-
/// @dev unlink policy from bundle
|
120
|
-
/// policy may only be unlinked if policy is closeable
|
121
|
-
/// may only be called by pool service
|
122
|
-
function unlinkPolicy(
|
123
|
-
IInstance instance,
|
124
|
-
NftId policyNftId
|
125
|
-
) external;
|
126
|
-
|
127
|
-
// FIXME: move to pool service
|
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
|
-
/// @dev returns true iff policy may be closed
|
135
|
-
/// a policy can be closed all conditions below are met
|
136
|
-
/// - policy exists
|
137
|
-
/// - has been activated
|
138
|
-
/// - is not yet closed
|
139
|
-
/// - has no open claims
|
140
|
-
/// - claim amount matches sum insured amount or is expired
|
141
|
-
function policyIsCloseable(IInstance instance, NftId policyNftId) external view returns (bool isCloseable);
|
142
|
-
|
143
115
|
}
|
@@ -27,9 +27,7 @@ interface IPoolComponent is IInstanceLinkedComponent {
|
|
27
27
|
/// The default implementation is empty.
|
28
28
|
function verifyApplication(
|
29
29
|
NftId applicationNftId,
|
30
|
-
bytes memory applicationData,
|
31
30
|
NftId bundleNftId,
|
32
|
-
bytes memory bundleFilter,
|
33
31
|
Amount collateralizationAmount
|
34
32
|
) external;
|
35
33
|
|
@@ -47,6 +45,7 @@ interface IPoolComponent is IInstanceLinkedComponent {
|
|
47
45
|
view
|
48
46
|
returns (bool isMatching);
|
49
47
|
|
48
|
+
|
50
49
|
/// @dev This is a callback function that is called by the claim service when a claim is confirmed.
|
51
50
|
/// The pool has the option to implement custom behavirous such as triggering a reinsurance claim or blocking the claim confirmaation.
|
52
51
|
/// The default implementation is empty.
|
@@ -56,11 +55,6 @@ interface IPoolComponent is IInstanceLinkedComponent {
|
|
56
55
|
Amount amount
|
57
56
|
) external;
|
58
57
|
|
59
|
-
/// @dev Withdraw bundle feeds for the given bundle
|
60
|
-
/// @param bundleNftId the bundle Nft Id
|
61
|
-
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
62
|
-
/// @return withdrawnAmount the effective withdrawn amount
|
63
|
-
function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
|
64
58
|
|
65
59
|
/// @dev Returns initial pool specific infos for this pool
|
66
60
|
function getInitialPoolInfo() external view returns (IComponents.PoolInfo memory info);
|