@etherisc/gif-next 0.0.2-e876b87-961 → 0.0.2-e8a628e-326
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 +90 -7
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
- 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 +525 -213
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +132 -290
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +64 -163
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +585 -231
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +170 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -125
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +401 -78
- 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 +160 -214
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +380 -45
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +308 -327
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
- 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 +215 -247
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -155
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +278 -223
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +944 -454
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +498 -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/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +470 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +541 -50
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +407 -17
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +606 -106
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +990 -359
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +337 -61
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1069 -481
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +424 -81
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -52
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +648 -948
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +1759 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- 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 +83 -165
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
- 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 +48 -64
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -101
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +157 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +134 -46
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +106 -163
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +380 -45
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +317 -344
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +125 -93
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +219 -146
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +63 -118
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +380 -214
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +76 -149
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +621 -413
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +168 -68
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +327 -62
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +123 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +199 -213
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +294 -189
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +134 -86
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +268 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +167 -56
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +175 -171
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +296 -194
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +150 -78
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +139 -114
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +112 -60
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +193 -207
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +338 -87
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +123 -43
- 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 +78 -19
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
- 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 +116 -57
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +727 -453
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +89 -37
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -39
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -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 +386 -64
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +66 -86
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +308 -542
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +136 -84
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +544 -4
- 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 +48 -50
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +171 -356
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +48 -64
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +43 -6
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -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 +56 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +66 -100
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +43 -6
- 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 +21 -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 +137 -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 +51 -11
- 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 +1446 -154
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1583 -286
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +140 -69
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +257 -162
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +102 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1632 -818
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +160 -88
- 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 +11 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- 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 +94 -38
- 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 +33 -31
- 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 +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -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/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
- 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 +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +79 -25
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +429 -245
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +142 -262
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +87 -80
- package/contracts/authorization/IAuthorization.sol +9 -43
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +248 -34
- package/contracts/distribution/BasicDistribution.sol +18 -16
- package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
- package/contracts/distribution/Distribution.sol +43 -81
- package/contracts/distribution/DistributionService.sol +192 -99
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +38 -24
- package/contracts/examples/fire/FirePool.sol +21 -8
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +38 -20
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +32 -6
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +132 -46
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BaseStore.sol +97 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IBaseStore.sol +43 -0
- package/contracts/instance/IInstance.sol +109 -19
- package/contracts/instance/IInstanceService.sol +61 -14
- package/contracts/instance/Instance.sol +191 -65
- package/contracts/instance/InstanceAdmin.sol +271 -171
- package/contracts/instance/InstanceAuthorizationV3.sol +139 -58
- package/contracts/instance/InstanceReader.sol +451 -312
- package/contracts/instance/InstanceService.sol +315 -214
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +14 -30
- package/contracts/instance/ProductStore.sol +110 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +6 -8
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +20 -9
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -7
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/oracle/BasicOracle.sol +2 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +3 -5
- package/contracts/oracle/OracleService.sol +98 -79
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +25 -17
- package/contracts/pool/BasicPoolAuthorization.sol +34 -10
- package/contracts/pool/BundleService.sol +75 -182
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +28 -55
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +65 -62
- package/contracts/pool/Pool.sol +109 -111
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +299 -229
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +93 -25
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +9 -13
- package/contracts/product/BasicProductAuthorization.sol +32 -11
- package/contracts/product/ClaimService.sol +221 -207
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +28 -3
- package/contracts/product/IClaimService.sol +18 -5
- package/contracts/product/IPolicyService.sol +34 -12
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +25 -10
- package/contracts/product/PolicyService.sol +258 -304
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +52 -46
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +104 -66
- package/contracts/product/RiskService.sol +128 -34
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +25 -24
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +31 -12
- package/contracts/registry/RegistryAdmin.sol +107 -364
- package/contracts/registry/RegistryAuthorization.sol +336 -0
- package/contracts/registry/RegistryService.sol +4 -4
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +158 -134
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -52
- package/contracts/registry/TokenRegistry.sol +61 -59
- package/contracts/shared/Component.sol +56 -113
- package/contracts/shared/ComponentService.sol +392 -406
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +277 -3
- package/contracts/shared/IComponent.sol +2 -18
- package/contracts/shared/IComponentService.sol +28 -38
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IKeyValueStore.sol +9 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +8 -27
- package/contracts/shared/KeyValueStore.sol +3 -3
- package/contracts/shared/NftOwnable.sol +8 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +41 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +264 -105
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +271 -72
- package/contracts/staking/IStakingService.sol +45 -75
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +521 -220
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +62 -148
- package/contracts/staking/StakingServiceManager.sol +6 -4
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +15 -15
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- 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 +69 -38
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -7
- package/contracts/type/UFixed.sol +35 -127
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +4 -4
- 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/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- 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
- package/contracts/shared/ComponentVerifyingService.sol +0 -126
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -17,7 +17,7 @@ contract OracleServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
OracleService svc = new OracleService{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),
|
@@ -4,6 +4,7 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
5
|
import {Fee} from "../type/Fee.sol";
|
6
6
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
7
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
7
8
|
import {NftId} from "../type/NftId.sol";
|
8
9
|
import {BUNDLE} from "../type/ObjectType.sol";
|
9
10
|
import {RoleId} from "../type/RoleId.sol";
|
@@ -19,22 +20,21 @@ abstract contract BasicPool is
|
|
19
20
|
function _initializeBasicPool(
|
20
21
|
address registry,
|
21
22
|
NftId productNftId,
|
22
|
-
IAuthorization authorization,
|
23
|
-
address token,
|
24
23
|
string memory name,
|
24
|
+
IComponents.PoolInfo memory poolInfo,
|
25
|
+
IAuthorization authorization,
|
25
26
|
address initialOwner
|
26
27
|
)
|
27
28
|
internal
|
28
29
|
virtual
|
29
30
|
onlyInitializing()
|
30
31
|
{
|
31
|
-
|
32
|
+
__Pool_init(
|
32
33
|
registry,
|
33
34
|
productNftId,
|
34
35
|
name,
|
35
|
-
|
36
|
+
poolInfo,
|
36
37
|
authorization,
|
37
|
-
false, // isInterceptingNftTransfers,
|
38
38
|
initialOwner,
|
39
39
|
""); // componentData
|
40
40
|
}
|
@@ -82,50 +82,58 @@ abstract contract BasicPool is
|
|
82
82
|
}
|
83
83
|
|
84
84
|
|
85
|
-
function
|
85
|
+
function setBundleLocked(NftId bundleNftId, bool locked)
|
86
86
|
public
|
87
87
|
virtual
|
88
88
|
restricted()
|
89
89
|
onlyBundleOwner(bundleNftId)
|
90
90
|
onlyNftOfType(bundleNftId, BUNDLE())
|
91
91
|
{
|
92
|
-
|
92
|
+
_setBundleLocked(bundleNftId, locked);
|
93
93
|
}
|
94
94
|
|
95
95
|
|
96
|
-
function
|
96
|
+
function closeBundle(NftId bundleNftId)
|
97
97
|
public
|
98
98
|
virtual
|
99
99
|
restricted()
|
100
100
|
onlyBundleOwner(bundleNftId)
|
101
101
|
onlyNftOfType(bundleNftId, BUNDLE())
|
102
102
|
{
|
103
|
-
|
103
|
+
_closeBundle(bundleNftId);
|
104
104
|
}
|
105
105
|
|
106
106
|
|
107
|
-
|
107
|
+
/// @dev Updates the bundle feeds to the specified values.
|
108
|
+
/// @param bundleNftId the bundle Nft Id
|
109
|
+
/// @param fee the new fee values
|
110
|
+
function setBundleFee(
|
111
|
+
NftId bundleNftId,
|
112
|
+
Fee memory fee
|
113
|
+
)
|
108
114
|
public
|
109
115
|
virtual
|
110
116
|
restricted()
|
111
117
|
onlyBundleOwner(bundleNftId)
|
112
118
|
onlyNftOfType(bundleNftId, BUNDLE())
|
113
119
|
{
|
114
|
-
|
120
|
+
_setBundleFee(bundleNftId, fee);
|
115
121
|
}
|
116
122
|
|
117
123
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
124
|
+
/// @dev Withdraw bundle feeds for the given bundle.
|
125
|
+
/// @param bundleNftId the bundle Nft Id
|
126
|
+
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
127
|
+
/// @return withdrawnAmount the effective withdrawn amount
|
128
|
+
function withdrawBundleFees(NftId bundleNftId, Amount amount)
|
129
|
+
external
|
123
130
|
virtual
|
124
131
|
restricted()
|
125
132
|
onlyBundleOwner(bundleNftId)
|
126
133
|
onlyNftOfType(bundleNftId, BUNDLE())
|
134
|
+
returns (Amount withdrawnAmount)
|
127
135
|
{
|
128
|
-
|
136
|
+
return _withdrawBundleFees(bundleNftId, amount);
|
129
137
|
}
|
130
138
|
|
131
139
|
|
@@ -1,14 +1,16 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Authorization} from "../authorization/Authorization.sol";
|
5
|
-
import {BasicPool} from "./BasicPool.sol";
|
6
4
|
import {IAccess} from "../authorization/IAccess.sol";
|
7
5
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
8
6
|
import {IPoolComponent} from "./IPoolComponent.sol";
|
9
|
-
|
7
|
+
|
8
|
+
import {Authorization} from "../authorization/Authorization.sol";
|
9
|
+
import {BasicPool} from "./BasicPool.sol";
|
10
|
+
import {COMPONENT, POOL} from "../type/ObjectType.sol";
|
10
11
|
import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
|
11
12
|
import {RoleId} from "../type/RoleId.sol";
|
13
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
12
14
|
|
13
15
|
|
14
16
|
contract BasicPoolAuthorization
|
@@ -16,16 +18,36 @@ contract BasicPoolAuthorization
|
|
16
18
|
{
|
17
19
|
|
18
20
|
constructor(string memory poolName)
|
19
|
-
Authorization(
|
21
|
+
Authorization(
|
22
|
+
poolName,
|
23
|
+
POOL(),
|
24
|
+
3,
|
25
|
+
COMMIT_HASH,
|
26
|
+
true,
|
27
|
+
true)
|
20
28
|
{}
|
21
29
|
|
22
|
-
function
|
30
|
+
function _setupServiceTargets()
|
23
31
|
internal
|
24
32
|
virtual override
|
25
33
|
{
|
26
|
-
|
34
|
+
_authorizeServiceDomain(COMPONENT(), address(11));
|
35
|
+
_authorizeServiceDomain(POOL(), address(12));
|
27
36
|
}
|
28
37
|
|
38
|
+
function _setupTokenHandlerAuthorizations() internal virtual override {
|
39
|
+
// authorize token handler functions for component service role
|
40
|
+
IAccess.FunctionInfo[] storage functions;
|
41
|
+
functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(COMPONENT()));
|
42
|
+
_authorize(functions, TokenHandler.approve.selector, "approve");
|
43
|
+
_authorize(functions, TokenHandler.setWallet.selector, "setWallet");
|
44
|
+
_authorize(functions, TokenHandler.pushFeeToken.selector, "pushFeeToken");
|
45
|
+
|
46
|
+
// authorize token handler functions for pool service role
|
47
|
+
functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(POOL()));
|
48
|
+
_authorize(functions, TokenHandler.pullToken.selector, "pullToken");
|
49
|
+
_authorize(functions, TokenHandler.pushToken.selector, "pushToken");
|
50
|
+
}
|
29
51
|
|
30
52
|
function _setupTargetAuthorizations()
|
31
53
|
internal
|
@@ -34,12 +56,11 @@ contract BasicPoolAuthorization
|
|
34
56
|
IAccess.FunctionInfo[] storage functions;
|
35
57
|
|
36
58
|
// authorize public role (open access to any account, only allows to lock target)
|
37
|
-
functions = _authorizeForTarget(
|
59
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
38
60
|
_authorize(functions, BasicPool.stake.selector, "stake");
|
39
61
|
_authorize(functions, BasicPool.unstake.selector, "unstake");
|
40
62
|
_authorize(functions, BasicPool.extend.selector, "extend");
|
41
|
-
_authorize(functions, BasicPool.
|
42
|
-
_authorize(functions, BasicPool.unlockBundle.selector, "unlockBundle");
|
63
|
+
_authorize(functions, BasicPool.setBundleLocked.selector, "setBundleLocked");
|
43
64
|
_authorize(functions, BasicPool.closeBundle.selector, "closeBundle");
|
44
65
|
_authorize(functions, BasicPool.setBundleFee.selector, "setBundleFee");
|
45
66
|
|
@@ -50,8 +71,11 @@ contract BasicPoolAuthorization
|
|
50
71
|
_authorize(functions, BasicPool.extend.selector, "extend");
|
51
72
|
|
52
73
|
_authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
|
74
|
+
_authorize(functions, BasicPool.withdrawBundleFees.selector, "withdrawBundleFees");
|
53
75
|
|
54
|
-
|
76
|
+
// authorize pool service
|
77
|
+
functions = _authorizeForTarget(getMainTargetName(), getServiceRole(POOL()));
|
78
|
+
_authorize(functions, IPoolComponent.verifyApplication.selector, "verifyApplication");
|
55
79
|
}
|
56
80
|
}
|
57
81
|
|
@@ -1,31 +1,30 @@
|
|
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
|
-
import {IComponents} from "../instance/module/IComponents.sol";
|
7
7
|
import {IComponentService} from "../shared/IComponentService.sol";
|
8
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
9
9
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
10
10
|
import {IInstance} from "../instance/IInstance.sol";
|
11
11
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
12
|
-
import {IPolicy} from "../instance/module/IPolicy.sol";
|
13
12
|
|
14
13
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
15
14
|
import {BundleSet} from "../instance/BundleSet.sol";
|
16
|
-
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
17
15
|
import {Fee} from "../type/Fee.sol";
|
18
16
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
19
17
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
20
|
-
import {ObjectType, COMPONENT, POOL, BUNDLE, POLICY, REGISTRY} from "../type/ObjectType.sol";
|
21
|
-
import {
|
18
|
+
import {ObjectType, ACCOUNTING, COMPONENT, POOL, BUNDLE, POLICY, REGISTRY} from "../type/ObjectType.sol";
|
19
|
+
import {PoolLib} from "./PoolLib.sol";
|
22
20
|
import {Seconds} from "../type/Seconds.sol";
|
21
|
+
import {Service} from "../shared/Service.sol";
|
22
|
+
import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
|
23
23
|
import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
24
24
|
|
25
|
-
string constant BUNDLE_SERVICE_NAME = "BundleService";
|
26
25
|
|
27
26
|
contract BundleService is
|
28
|
-
|
27
|
+
Service,
|
29
28
|
IBundleService
|
30
29
|
{
|
31
30
|
|
@@ -33,6 +32,7 @@ contract BundleService is
|
|
33
32
|
|
34
33
|
address private _registryAddress;
|
35
34
|
IRegistryService private _registryService;
|
35
|
+
IAccountingService private _accountingService;
|
36
36
|
IComponentService private _componentService;
|
37
37
|
|
38
38
|
function _initialize(
|
@@ -44,13 +44,14 @@ contract BundleService is
|
|
44
44
|
initializer()
|
45
45
|
{
|
46
46
|
(
|
47
|
-
address
|
48
|
-
address
|
47
|
+
address authority,
|
48
|
+
address registry
|
49
49
|
) = abi.decode(data, (address, address));
|
50
50
|
|
51
|
-
|
51
|
+
__Service_init(authority, registry, owner);
|
52
52
|
|
53
53
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
54
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
54
55
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
55
56
|
|
56
57
|
_registerInterface(type(IBundleService).interfaceId);
|
@@ -63,10 +64,11 @@ contract BundleService is
|
|
63
64
|
)
|
64
65
|
external
|
65
66
|
virtual
|
67
|
+
restricted()
|
66
68
|
{
|
67
69
|
_checkNftType(bundleNftId, BUNDLE());
|
68
70
|
|
69
|
-
(NftId poolNftId
|
71
|
+
(NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
70
72
|
InstanceReader instanceReader = instance.getInstanceReader();
|
71
73
|
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
72
74
|
if(bundleInfo.poolNftId.eqz()) {
|
@@ -79,24 +81,23 @@ contract BundleService is
|
|
79
81
|
|
80
82
|
bundleInfo.fee = fee;
|
81
83
|
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
84
|
+
|
85
|
+
emit LogBundleServiceBundleFeeUpdated(bundleNftId, fee.fixedFee, fee.fractionalFee);
|
82
86
|
}
|
83
87
|
|
84
88
|
|
85
89
|
function create(
|
86
|
-
IInstance instance,
|
87
|
-
NftId poolNftId,
|
88
90
|
address owner,
|
89
91
|
Fee memory bundleFee,
|
90
|
-
Amount stakingAmount,
|
91
92
|
Seconds lifetime,
|
92
93
|
bytes calldata filter
|
93
94
|
)
|
94
95
|
external
|
95
|
-
|
96
|
-
restricted
|
96
|
+
virtual
|
97
|
+
restricted()
|
97
98
|
returns(NftId bundleNftId)
|
98
99
|
{
|
99
|
-
|
100
|
+
(NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
100
101
|
|
101
102
|
// register bundle with registry
|
102
103
|
bundleNftId = _registryService.registerBundle(
|
@@ -119,25 +120,17 @@ contract BundleService is
|
|
119
120
|
poolNftId: poolNftId,
|
120
121
|
fee: bundleFee,
|
121
122
|
filter: filter,
|
122
|
-
activatedAt: TimestampLib.
|
123
|
-
expiredAt: TimestampLib.
|
123
|
+
activatedAt: TimestampLib.current(),
|
124
|
+
expiredAt: TimestampLib.current().addSeconds(lifetime),
|
124
125
|
closedAt: zeroTimestamp()
|
125
126
|
})
|
126
127
|
);
|
127
128
|
|
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
129
|
// put bundle under bundle managemet
|
138
130
|
BundleSet bundleManager = instance.getBundleSet();
|
139
131
|
bundleManager.add(bundleNftId);
|
140
|
-
|
132
|
+
|
133
|
+
emit LogBundleServiceBundleCreated(bundleNftId, poolNftId, lifetime);
|
141
134
|
}
|
142
135
|
|
143
136
|
|
@@ -152,6 +145,7 @@ contract BundleService is
|
|
152
145
|
virtual
|
153
146
|
restricted()
|
154
147
|
{
|
148
|
+
// checks
|
155
149
|
_checkNftType(policyNftId, POLICY());
|
156
150
|
_checkNftType(bundleNftId, BUNDLE());
|
157
151
|
|
@@ -162,7 +156,7 @@ contract BundleService is
|
|
162
156
|
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
163
157
|
|
164
158
|
// ensure bundle is active and not yet expired
|
165
|
-
if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.
|
159
|
+
if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.current()) {
|
166
160
|
revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
|
167
161
|
}
|
168
162
|
}
|
@@ -183,51 +177,37 @@ contract BundleService is
|
|
183
177
|
}
|
184
178
|
}
|
185
179
|
|
180
|
+
// effects
|
186
181
|
// updated locked amount
|
187
182
|
instanceStore.increaseLocked(bundleNftId, collateralAmount);
|
188
|
-
|
189
|
-
// link policy to bundle in bundle manger
|
190
|
-
_linkPolicy(instance, policyNftId);
|
191
|
-
}
|
192
|
-
|
193
|
-
|
194
|
-
function lock(NftId bundleNftId)
|
195
|
-
external
|
196
|
-
virtual
|
197
|
-
{
|
198
|
-
_checkNftType(bundleNftId, BUNDLE());
|
199
|
-
|
200
|
-
(,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
201
|
-
|
202
|
-
// udpate bundle state
|
203
|
-
instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
|
204
|
-
|
205
|
-
// update set of active bundles
|
206
|
-
BundleSet bundleManager = instance.getBundleSet();
|
207
|
-
bundleManager.lock(bundleNftId);
|
208
183
|
|
209
|
-
emit
|
184
|
+
emit LogBundleServiceCollateralLocked(bundleNftId, policyNftId, collateralAmount);
|
210
185
|
}
|
211
186
|
|
212
187
|
|
213
|
-
function
|
188
|
+
function setLocked(NftId bundleNftId, bool locked)
|
214
189
|
external
|
215
190
|
virtual
|
191
|
+
restricted()
|
216
192
|
{
|
193
|
+
// checks
|
217
194
|
_checkNftType(bundleNftId, BUNDLE());
|
218
195
|
|
219
|
-
(
|
220
|
-
|
221
|
-
// udpate bundle state
|
222
|
-
instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
|
196
|
+
(, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
223
197
|
|
198
|
+
// effects
|
224
199
|
// update set of active bundles
|
225
200
|
BundleSet bundleManager = instance.getBundleSet();
|
226
|
-
bundleManager.unlock(bundleNftId);
|
227
201
|
|
228
|
-
|
202
|
+
if (locked) {
|
203
|
+
bundleManager.lock(bundleNftId);
|
204
|
+
emit LogBundleServiceBundleLocked(bundleNftId);
|
205
|
+
} else {
|
206
|
+
bundleManager.unlock(bundleNftId);
|
207
|
+
emit LogBundleServiceBundleUnlocked(bundleNftId);
|
208
|
+
}
|
229
209
|
}
|
230
|
-
|
210
|
+
|
231
211
|
|
232
212
|
function close(
|
233
213
|
IInstance instance,
|
@@ -235,9 +215,10 @@ contract BundleService is
|
|
235
215
|
)
|
236
216
|
external
|
237
217
|
virtual
|
238
|
-
restricted
|
218
|
+
restricted()
|
239
219
|
returns (Amount unstakedAmount, Amount feeAmount)
|
240
220
|
{
|
221
|
+
// checks
|
241
222
|
_checkNftType(bundleNftId, BUNDLE());
|
242
223
|
|
243
224
|
InstanceReader instanceReader = instance.getInstanceReader();
|
@@ -249,6 +230,7 @@ contract BundleService is
|
|
249
230
|
revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
|
250
231
|
}
|
251
232
|
|
233
|
+
// effects
|
252
234
|
{
|
253
235
|
// update bundle state
|
254
236
|
InstanceStore instanceStore = instance.getInstanceStore();
|
@@ -259,52 +241,59 @@ contract BundleService is
|
|
259
241
|
Amount balanceAmountWithFees = instanceReader.getBalanceAmount(bundleNftId);
|
260
242
|
feeAmount = instanceReader.getFeeAmount(bundleNftId);
|
261
243
|
unstakedAmount = balanceAmountWithFees - feeAmount;
|
262
|
-
|
244
|
+
_accountingService.decreaseBundleBalance(instanceStore, bundleNftId, unstakedAmount, feeAmount);
|
263
245
|
}
|
246
|
+
|
247
|
+
emit LogBundleServiceBundleClosed(bundleNftId);
|
264
248
|
}
|
265
249
|
|
266
250
|
/// @inheritdoc IBundleService
|
267
251
|
function stake(
|
268
|
-
|
252
|
+
InstanceReader instanceReader,
|
253
|
+
InstanceStore instanceStore,
|
269
254
|
NftId bundleNftId,
|
270
255
|
Amount amount
|
271
256
|
)
|
272
257
|
external
|
273
258
|
virtual
|
274
|
-
|
259
|
+
restricted()
|
275
260
|
{
|
261
|
+
// checks
|
276
262
|
_checkNftType(bundleNftId, BUNDLE());
|
277
263
|
|
278
|
-
IBundle.BundleInfo memory bundleInfo =
|
279
|
-
StateId bundleState =
|
264
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
265
|
+
StateId bundleState = instanceReader.getBundleState(bundleNftId);
|
280
266
|
|
281
267
|
if( (bundleState != ACTIVE() && bundleState != PAUSED()) // locked bundles can be staked
|
282
|
-
|| bundleInfo.expiredAt < TimestampLib.
|
268
|
+
|| bundleInfo.expiredAt < TimestampLib.current()
|
283
269
|
|| bundleInfo.closedAt.gtz()) {
|
284
270
|
revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
|
285
271
|
}
|
286
272
|
|
287
|
-
|
288
|
-
|
273
|
+
// effects
|
274
|
+
_accountingService.increaseBundleBalance(
|
275
|
+
instanceStore,
|
289
276
|
bundleNftId,
|
290
277
|
amount,
|
291
278
|
AmountLib.zero());
|
279
|
+
|
280
|
+
emit LogBundleServiceBundleStaked(bundleNftId, amount);
|
292
281
|
}
|
293
282
|
|
294
283
|
/// @inheritdoc IBundleService
|
295
284
|
function unstake(
|
296
|
-
|
285
|
+
InstanceStore instanceStore,
|
297
286
|
NftId bundleNftId,
|
298
287
|
Amount amount
|
299
288
|
)
|
300
289
|
external
|
301
290
|
virtual
|
302
|
-
|
291
|
+
restricted()
|
303
292
|
returns (Amount unstakedAmount)
|
304
293
|
{
|
294
|
+
// checks
|
305
295
|
_checkNftType(bundleNftId, BUNDLE());
|
306
296
|
|
307
|
-
InstanceStore instanceStore = instance.getInstanceStore();
|
308
297
|
(
|
309
298
|
Amount balanceAmount,
|
310
299
|
Amount lockedAmount,
|
@@ -324,23 +313,27 @@ contract BundleService is
|
|
324
313
|
revert ErrorBundleServiceUnstakeAmountExceedsLimit(amount, availableAmount);
|
325
314
|
}
|
326
315
|
|
327
|
-
|
316
|
+
// effects
|
317
|
+
_accountingService.decreaseBundleBalance(
|
328
318
|
instanceStore,
|
329
319
|
bundleNftId,
|
330
320
|
unstakedAmount,
|
331
321
|
AmountLib.zero());
|
322
|
+
|
323
|
+
emit LogBundleServiceBundleUnstaked(bundleNftId, unstakedAmount);
|
332
324
|
}
|
333
325
|
|
334
326
|
/// @inheritdoc IBundleService
|
335
327
|
function extend(NftId bundleNftId, Seconds lifetimeExtension)
|
336
328
|
external
|
337
329
|
virtual
|
338
|
-
|
330
|
+
restricted()
|
339
331
|
returns (Timestamp extendedExpiredAt)
|
340
332
|
{
|
333
|
+
// checks
|
341
334
|
_checkNftType(bundleNftId, BUNDLE());
|
342
335
|
|
343
|
-
(NftId poolNftId
|
336
|
+
(NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
344
337
|
IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
|
345
338
|
StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
|
346
339
|
|
@@ -350,7 +343,7 @@ contract BundleService is
|
|
350
343
|
}
|
351
344
|
|
352
345
|
// ensure bundle is active and not yet expired
|
353
|
-
if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.
|
346
|
+
if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.current()) {
|
354
347
|
revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
|
355
348
|
}
|
356
349
|
|
@@ -358,17 +351,18 @@ contract BundleService is
|
|
358
351
|
revert ErrorBundleServiceExtensionLifetimeIsZero();
|
359
352
|
}
|
360
353
|
|
354
|
+
// effects
|
361
355
|
bundleInfo.expiredAt = bundleInfo.expiredAt.addSeconds(lifetimeExtension);
|
362
|
-
|
356
|
+
extendedExpiredAt = bundleInfo.expiredAt;
|
363
357
|
|
364
|
-
|
358
|
+
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
365
359
|
|
366
|
-
|
360
|
+
emit LogBundleServiceBundleExtended(bundleNftId, lifetimeExtension, extendedExpiredAt);
|
367
361
|
}
|
368
362
|
|
369
363
|
|
370
364
|
function releaseCollateral(
|
371
|
-
|
365
|
+
InstanceStore instanceStore,
|
372
366
|
NftId policyNftId,
|
373
367
|
NftId bundleNftId,
|
374
368
|
Amount collateralAmount
|
@@ -380,112 +374,11 @@ contract BundleService is
|
|
380
374
|
_checkNftType(policyNftId, POLICY());
|
381
375
|
_checkNftType(bundleNftId, BUNDLE());
|
382
376
|
|
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);
|
403
|
-
}
|
404
|
-
|
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
|
-
}
|
377
|
+
instanceStore.decreaseLocked(bundleNftId, collateralAmount);
|
431
378
|
|
432
|
-
|
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
|
-
}
|
379
|
+
emit LogBundleServiceCollateralReleased(bundleNftId, policyNftId, collateralAmount);
|
447
380
|
}
|
448
381
|
|
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
382
|
|
490
383
|
function _getDomain() internal pure override returns(ObjectType) {
|
491
384
|
return BUNDLE();
|