@etherisc/gif-next 0.0.2-f347f00-614 → 0.0.2-f36fd21-685
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 +30 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +100 -252
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +29 -5
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1548 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -228
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +269 -90
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +83 -55
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +100 -132
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +134 -16
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -19
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +35 -96
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +110 -81
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -125
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -59
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +84 -101
- 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 +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1185 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +43 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +43 -96
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1520 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +220 -54
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +72 -40
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +102 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +43 -195
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +43 -296
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +36 -36
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +36 -36
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +32 -32
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +34 -34
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +72 -72
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -54
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +32 -42
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +64 -51
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +43 -43
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +63 -58
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +47 -47
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +32 -153
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +20 -20
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +28 -28
- 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 -46
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- 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 +101 -73
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +239 -389
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +44 -12
- 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/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +271 -86
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +77 -61
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- 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/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -53
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
- 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/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +42 -32
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -44
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +40 -40
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +27 -22
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- 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/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -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 +55 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +4 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/{shared → authorization}/AccessAdmin.sol +135 -294
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +34 -60
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +7 -4
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +21 -14
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +144 -110
- package/contracts/distribution/DistributionService.sol +71 -31
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +17 -1
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +8 -9
- package/contracts/instance/IInstanceService.sol +13 -18
- package/contracts/instance/Instance.sol +61 -70
- package/contracts/instance/InstanceAdmin.sol +202 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +22 -9
- package/contracts/instance/InstanceService.sol +74 -70
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +13 -5
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
- package/contracts/instance/module/IComponents.sol +0 -1
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +72 -51
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +55 -0
- package/contracts/pool/BundleService.sol +72 -27
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +14 -0
- package/contracts/pool/IPoolComponent.sol +6 -60
- package/contracts/pool/Pool.sol +160 -131
- package/contracts/pool/PoolService.sol +12 -30
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +12 -36
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +52 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +7 -32
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IPolicyService.sol +2 -0
- package/contracts/product/IProductComponent.sol +7 -9
- package/contracts/product/PolicyService.sol +28 -4
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +112 -88
- package/contracts/product/ProductService.sol +7 -32
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/IRegistry.sol +26 -16
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +85 -85
- package/contracts/registry/RegistryAdmin.sol +118 -86
- package/contracts/registry/RegistryService.sol +4 -18
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -14
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +13 -14
- package/contracts/shared/ComponentService.sol +102 -68
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -0
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +47 -19
- package/contracts/shared/KeyValueStore.sol +6 -2
- package/contracts/shared/Lifecycle.sol +16 -69
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +2 -2
- package/contracts/shared/PolicyHolder.sol +2 -5
- package/contracts/shared/Service.sol +3 -4
- package/contracts/staking/IStaking.sol +1 -2
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/Staking.sol +20 -17
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +15 -23
- package/contracts/type/Amount.sol +12 -5
- package/contracts/type/ObjectType.sol +37 -7
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/UFixed.sol +34 -9
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +6 -3
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -166
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1554
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/registry/ReleaseManager.sol +0 -521
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
| @@ -0,0 +1,55 @@ | |
| 1 | 
            +
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 | 
            +
            pragma solidity ^0.8.20;
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            import {Authorization} from "../authorization/Authorization.sol";
         | 
| 5 | 
            +
            import {BasicPool} from "./BasicPool.sol"; 
         | 
| 6 | 
            +
            import {IAccess} from "../authorization/IAccess.sol";
         | 
| 7 | 
            +
            import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
         | 
| 8 | 
            +
            import {IPoolComponent} from "./IPoolComponent.sol";
         | 
| 9 | 
            +
            import {POOL} from "../type/ObjectType.sol";
         | 
| 10 | 
            +
            import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
         | 
| 11 | 
            +
            import {RoleId} from "../type/RoleId.sol";
         | 
| 12 | 
            +
             | 
| 13 | 
            +
             | 
| 14 | 
            +
            contract BasicPoolAuthorization
         | 
| 15 | 
            +
                 is Authorization
         | 
| 16 | 
            +
            {
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                 constructor(string memory poolName)
         | 
| 19 | 
            +
                      Authorization(poolName)
         | 
| 20 | 
            +
                 {}
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                 function _setupTargets()
         | 
| 23 | 
            +
                      internal
         | 
| 24 | 
            +
                      virtual override
         | 
| 25 | 
            +
                 {
         | 
| 26 | 
            +
                      _addComponentTargetWithRole(POOL()); // basic pool target
         | 
| 27 | 
            +
                 }
         | 
| 28 | 
            +
             | 
| 29 | 
            +
             | 
| 30 | 
            +
                 function _setupTargetAuthorizations()
         | 
| 31 | 
            +
                      internal
         | 
| 32 | 
            +
                      virtual override
         | 
| 33 | 
            +
                 {
         | 
| 34 | 
            +
                      IAccess.FunctionInfo[] storage functions;
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                      // authorize public role (open access to any account, only allows to lock target)
         | 
| 37 | 
            +
                      functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
         | 
| 38 | 
            +
                      _authorize(functions, BasicPool.stake.selector, "stake");
         | 
| 39 | 
            +
                      _authorize(functions, BasicPool.unstake.selector, "unstake");
         | 
| 40 | 
            +
                      _authorize(functions, BasicPool.extend.selector, "extend");
         | 
| 41 | 
            +
                      _authorize(functions, BasicPool.lockBundle.selector, "lockBundle");
         | 
| 42 | 
            +
                      _authorize(functions, BasicPool.unlockBundle.selector, "unlockBundle");
         | 
| 43 | 
            +
                      _authorize(functions, BasicPool.close.selector, "close");
         | 
| 44 | 
            +
                      _authorize(functions, BasicPool.setBundleFee.selector, "setBundleFee");
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                      _authorize(functions, BasicPool.setMaxCapitalAmount.selector, "setMaxCapitalAmount");
         | 
| 47 | 
            +
                      _authorize(functions, BasicPool.setBundleOwnerRole.selector, "setBundleOwnerRole");
         | 
| 48 | 
            +
                      _authorize(functions, BasicPool.setFees.selector, "setFees");
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                      _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                      _authorize(functions, IPoolComponent.withdrawBundleFees.selector, "withdrawBundleFees");
         | 
| 53 | 
            +
                 }
         | 
| 54 | 
            +
            }
         | 
| 55 | 
            +
             | 
| @@ -1,37 +1,28 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            +
            import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
         | 
| 5 | 
            +
             | 
| 4 6 | 
             
            import {IBundle} from "../instance/module/IBundle.sol";
         | 
| 7 | 
            +
            import {IBundleService} from "./IBundleService.sol";
         | 
| 5 8 | 
             
            import {IComponents} from "../instance/module/IComponents.sol";
         | 
| 6 9 | 
             
            import {IComponentService} from "../shared/IComponentService.sol";
         | 
| 7 10 | 
             
            import {IRegistry} from "../registry/IRegistry.sol";
         | 
| 11 | 
            +
            import {IRegistryService} from "../registry/IRegistryService.sol";
         | 
| 8 12 | 
             
            import {IInstance} from "../instance/IInstance.sol";
         | 
| 9 13 | 
             
            import {InstanceStore} from "../instance/InstanceStore.sol";
         | 
| 10 14 | 
             
            import {IPolicy} from "../instance/module/IPolicy.sol";
         | 
| 11 15 |  | 
| 12 | 
            -
            import { | 
| 13 | 
            -
            import { | 
| 16 | 
            +
            import {Amount, AmountLib} from "../type/Amount.sol";
         | 
| 17 | 
            +
            import {BundleSet} from "../instance/BundleSet.sol";
         | 
| 18 | 
            +
            import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
         | 
| 19 | 
            +
            import {Fee} from "../type/Fee.sol";
         | 
| 20 | 
            +
            import {InstanceReader} from "../instance/InstanceReader.sol";
         | 
| 14 21 | 
             
            import {NftId, NftIdLib} from "../type/NftId.sol";
         | 
| 15 22 | 
             
            import {ObjectType, COMPONENT, POOL, BUNDLE, REGISTRY} from "../type/ObjectType.sol";
         | 
| 16 | 
            -
            import {POOL_OWNER_ROLE, RoleId} from "../type/RoleId.sol";
         | 
| 17 | 
            -
            import {Pool} from "./Pool.sol";
         | 
| 18 | 
            -
             | 
| 19 | 
            -
            import {Amount, AmountLib} from "../type/Amount.sol";
         | 
| 20 | 
            -
            import {Fee, FeeLib} from "../type/Fee.sol";
         | 
| 21 23 | 
             
            import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
         | 
| 22 24 | 
             
            import {Seconds} from "../type/Seconds.sol";
         | 
| 23 25 | 
             
            import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
         | 
| 24 | 
            -
            import {Version, VersionLib} from "../type/Version.sol";
         | 
| 25 | 
            -
            import {Versionable} from "../shared/Versionable.sol";
         | 
| 26 | 
            -
             | 
| 27 | 
            -
            import {IService} from "../shared/IService.sol";
         | 
| 28 | 
            -
            import {Service} from "../shared/Service.sol";
         | 
| 29 | 
            -
            import {BundleManager} from "../instance/BundleManager.sol";
         | 
| 30 | 
            -
            import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
         | 
| 31 | 
            -
            import {IBundleService} from "./IBundleService.sol";
         | 
| 32 | 
            -
            import {IRegistryService} from "../registry/IRegistryService.sol";
         | 
| 33 | 
            -
            import {InstanceService} from "../instance/InstanceService.sol";
         | 
| 34 | 
            -
            import {InstanceReader} from "../instance/InstanceReader.sol";
         | 
| 35 26 |  | 
| 36 27 | 
             
            string constant BUNDLE_SERVICE_NAME = "BundleService";
         | 
| 37 28 |  | 
| @@ -39,8 +30,7 @@ contract BundleService is | |
| 39 30 | 
             
                ComponentVerifyingService, 
         | 
| 40 31 | 
             
                IBundleService 
         | 
| 41 32 | 
             
            {
         | 
| 42 | 
            -
                 | 
| 43 | 
            -
             | 
| 33 | 
            +
                
         | 
| 44 34 | 
             
                string public constant NAME = "BundleService";
         | 
| 45 35 |  | 
| 46 36 | 
             
                address private _registryAddress;
         | 
| @@ -139,7 +129,7 @@ contract BundleService is | |
| 139 129 | 
             
                        AmountLib.zero()); // fee amount
         | 
| 140 130 |  | 
| 141 131 | 
             
                    // put bundle under bundle managemet
         | 
| 142 | 
            -
                     | 
| 132 | 
            +
                    BundleSet bundleManager = instance.getBundleSet();
         | 
| 143 133 | 
             
                    bundleManager.add(bundleNftId);
         | 
| 144 134 |  | 
| 145 135 | 
             
                    // TODO add logging
         | 
| @@ -197,7 +187,7 @@ contract BundleService is | |
| 197 187 | 
             
                    instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
         | 
| 198 188 |  | 
| 199 189 | 
             
                    // update set of active bundles
         | 
| 200 | 
            -
                     | 
| 190 | 
            +
                    BundleSet bundleManager = instance.getBundleSet();
         | 
| 201 191 | 
             
                    bundleManager.lock(bundleNftId);
         | 
| 202 192 |  | 
| 203 193 | 
             
                    emit LogBundleServiceBundleLocked(bundleNftId);
         | 
| @@ -214,7 +204,7 @@ contract BundleService is | |
| 214 204 | 
             
                    instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
         | 
| 215 205 |  | 
| 216 206 | 
             
                    // update set of active bundles
         | 
| 217 | 
            -
                     | 
| 207 | 
            +
                    BundleSet bundleManager = instance.getBundleSet();
         | 
| 218 208 | 
             
                    bundleManager.unlock(bundleNftId);
         | 
| 219 209 |  | 
| 220 210 | 
             
                    emit LogBundleServiceBundleActivated(bundleNftId);
         | 
| @@ -233,7 +223,7 @@ contract BundleService is | |
| 233 223 | 
             
                    instance.getInstanceStore().updateBundleState(bundleNftId, CLOSED());
         | 
| 234 224 |  | 
| 235 225 | 
             
                    // ensure no open policies attached to bundle
         | 
| 236 | 
            -
                     | 
| 226 | 
            +
                    BundleSet bundleManager = instance.getBundleSet();
         | 
| 237 227 | 
             
                    uint256 openPolicies = bundleManager.activePolicies(bundleNftId);
         | 
| 238 228 | 
             
                    if(openPolicies > 0) {
         | 
| 239 229 | 
             
                        revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
         | 
| @@ -271,7 +261,62 @@ contract BundleService is | |
| 271 261 | 
             
                        revert ErrorBundleServicePolicyNotCloseable(policyNftId);
         | 
| 272 262 | 
             
                    }
         | 
| 273 263 |  | 
| 274 | 
            -
                    instance. | 
| 264 | 
            +
                    instance.getBundleSet().unlinkPolicy(policyNftId);
         | 
| 265 | 
            +
                }
         | 
| 266 | 
            +
             | 
| 267 | 
            +
                /// @inheritdoc IBundleService
         | 
| 268 | 
            +
                function withdrawBundleFees(NftId bundleNftId, Amount amount) 
         | 
| 269 | 
            +
                    public 
         | 
| 270 | 
            +
                    virtual
         | 
| 271 | 
            +
                    // TODO: restricted() (once #462 is done)
         | 
| 272 | 
            +
                    returns (Amount withdrawnAmount) 
         | 
| 273 | 
            +
                {
         | 
| 274 | 
            +
                    (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
         | 
| 275 | 
            +
                    InstanceReader reader = instance.getInstanceReader();
         | 
| 276 | 
            +
                    
         | 
| 277 | 
            +
                    IComponents.ComponentInfo memory poolInfo = reader.getComponentInfo(poolNftId);
         | 
| 278 | 
            +
                    address poolWallet = poolInfo.wallet;
         | 
| 279 | 
            +
                    
         | 
| 280 | 
            +
                    IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
         | 
| 281 | 
            +
                    
         | 
| 282 | 
            +
                    // determine withdrawn amount
         | 
| 283 | 
            +
                    withdrawnAmount = amount;
         | 
| 284 | 
            +
                    if (withdrawnAmount.gte(AmountLib.max())) {
         | 
| 285 | 
            +
                        withdrawnAmount = reader.getFeeAmount(bundleNftId);
         | 
| 286 | 
            +
                    } else {
         | 
| 287 | 
            +
                        if (withdrawnAmount.gt(reader.getFeeAmount(bundleNftId))) {
         | 
| 288 | 
            +
                            revert ErrorBundleServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
         | 
| 289 | 
            +
                        }
         | 
| 290 | 
            +
                    }
         | 
| 291 | 
            +
             | 
| 292 | 
            +
                    if (withdrawnAmount.eqz()) {
         | 
| 293 | 
            +
                        revert ErrorBundleServiceFeesWithdrawAmountIsZero();
         | 
| 294 | 
            +
                    }
         | 
| 295 | 
            +
             | 
| 296 | 
            +
                    // check allowance
         | 
| 297 | 
            +
                    IERC20Metadata token = IERC20Metadata(poolInfo.token);
         | 
| 298 | 
            +
                    uint256 tokenAllowance = token.allowance(poolWallet, address(poolInfo.tokenHandler));
         | 
| 299 | 
            +
                    if (tokenAllowance < withdrawnAmount.toInt()) {
         | 
| 300 | 
            +
                        revert ErrorBundleServiceWalletAllowanceTooSmall(poolWallet, address(poolInfo.tokenHandler), tokenAllowance, withdrawnAmount.toInt());
         | 
| 301 | 
            +
                    }
         | 
| 302 | 
            +
             | 
| 303 | 
            +
                    // decrease fee counters by withdrawnAmount
         | 
| 304 | 
            +
                    {
         | 
| 305 | 
            +
                        InstanceStore store = instance.getInstanceStore();
         | 
| 306 | 
            +
                        // decrease fee amount of the bundle
         | 
| 307 | 
            +
                        _componentService.decreaseBundleBalance(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
         | 
| 308 | 
            +
                        // decrease pool balance 
         | 
| 309 | 
            +
                        _componentService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
         | 
| 310 | 
            +
                    }
         | 
| 311 | 
            +
             | 
| 312 | 
            +
                    // transfer amount to bundle owner
         | 
| 313 | 
            +
                    {
         | 
| 314 | 
            +
                        address owner = getRegistry().ownerOf(bundleNftId);
         | 
| 315 | 
            +
                        // TODO: centralize token handling (issue #471)
         | 
| 316 | 
            +
                        poolInfo.tokenHandler.transfer(poolWallet, owner, withdrawnAmount);
         | 
| 317 | 
            +
             | 
| 318 | 
            +
                        emit LogBundleServiceFeesWithdrawn(bundleNftId, owner, address(token), withdrawnAmount);
         | 
| 319 | 
            +
                    }
         | 
| 275 320 | 
             
                }
         | 
| 276 321 |  | 
| 277 322 | 
             
                /// @dev links policy to bundle
         | 
| @@ -283,10 +328,10 @@ contract BundleService is | |
| 283 328 |  | 
| 284 329 | 
             
                    // ensure policy has not yet been activated in a previous tx already
         | 
| 285 330 | 
             
                    if (policyInfo.activatedAt.gtz() && policyInfo.activatedAt < TimestampLib.blockTimestamp()) {
         | 
| 286 | 
            -
                        revert  | 
| 331 | 
            +
                        revert BundleSet.ErrorBundleSetPolicyAlreadyActivated(policyNftId);
         | 
| 287 332 | 
             
                    }
         | 
| 288 333 |  | 
| 289 | 
            -
                     | 
| 334 | 
            +
                    BundleSet bundleManager = instance.getBundleSet();
         | 
| 290 335 | 
             
                    bundleManager.linkPolicy(policyNftId);
         | 
| 291 336 | 
             
                }
         | 
| 292 337 |  | 
| @@ -1,12 +1,9 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            -
            import {IVersionable} from "../ | 
| 5 | 
            -
            import {ProxyManager} from "../ | 
| 4 | 
            +
            import {IVersionable} from "../upgradeability/IVersionable.sol";
         | 
| 5 | 
            +
            import {ProxyManager} from "../upgradeability/ProxyManager.sol";
         | 
| 6 6 | 
             
            import {BundleService} from "./BundleService.sol";
         | 
| 7 | 
            -
            import {Registry} from "../registry/Registry.sol";
         | 
| 8 | 
            -
            import {RegistryService} from "../registry/RegistryService.sol";
         | 
| 9 | 
            -
            import {ObjectType, REGISTRY} from "../type/ObjectType.sol";
         | 
| 10 7 |  | 
| 11 8 | 
             
            contract BundleServiceManager is ProxyManager {
         | 
| 12 9 |  | 
| @@ -26,6 +26,13 @@ interface IBundleService is IService { | |
| 26 26 |  | 
| 27 27 | 
             
                error ErrorBundleServicePolicyNotCloseable(NftId policyNftId);
         | 
| 28 28 |  | 
| 29 | 
            +
                // error ErrorBundleServiceBundleNotActive(NftId distributorNftId);
         | 
| 30 | 
            +
                error ErrorBundleServiceFeesWithdrawAmountExceedsLimit(Amount amount, Amount limit);
         | 
| 31 | 
            +
                error ErrorBundleServiceFeesWithdrawAmountIsZero();
         | 
| 32 | 
            +
                error ErrorBundleServiceWalletAllowanceTooSmall(address wallet, address tokenHandler, uint256 allowance, uint256 amount);
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                event LogBundleServiceFeesWithdrawn(NftId bundleNftId, address recipient, address tokenAddress, Amount amount);
         | 
| 35 | 
            +
             | 
| 29 36 | 
             
                /// @dev create a new bundle for the specified attributes
         | 
| 30 37 | 
             
                /// may only be called by pool service
         | 
| 31 38 | 
             
                function create(
         | 
| @@ -103,4 +110,11 @@ interface IBundleService is IService { | |
| 103 110 | 
             
                    IInstance instance, 
         | 
| 104 111 | 
             
                    NftId policyNftId
         | 
| 105 112 | 
             
                ) external;
         | 
| 113 | 
            +
             | 
| 114 | 
            +
                /// @dev Withdraw bundle feeds for the given bundle
         | 
| 115 | 
            +
                /// @param bundleNftId the bundle Nft Id
         | 
| 116 | 
            +
                /// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
         | 
| 117 | 
            +
                /// @return withdrawnAmount the effective withdrawn amount
         | 
| 118 | 
            +
                function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
         | 
| 119 | 
            +
             | 
| 106 120 | 
             
            }
         | 
| @@ -16,70 +16,10 @@ interface IPoolComponent is IInstanceLinkedComponent { | |
| 16 16 |  | 
| 17 17 | 
             
                error ErrorPoolNotBundleOwner(NftId bundleNftId, address caller);
         | 
| 18 18 | 
             
                error ErrorPoolNotPoolService(address caller);
         | 
| 19 | 
            -
             | 
| 20 19 | 
             
                error ErrorPoolApplicationBundleMismatch(NftId applicationNftId);
         | 
| 21 20 |  | 
| 22 21 | 
             
                event LogPoolVerifiedByPool(address pool, NftId applicationNftId, Amount collateralizationAmount);
         | 
| 23 22 |  | 
| 24 | 
            -
                /// @dev increases the staked tokens by the specified amount
         | 
| 25 | 
            -
                /// only the bundle owner may stake tokens
         | 
| 26 | 
            -
                /// bundle MUST be in active or locked state
         | 
| 27 | 
            -
                function stake(NftId bundleNftId, Amount amount) external;
         | 
| 28 | 
            -
             | 
| 29 | 
            -
                /// @dev decreases the staked tokens by the specified amount
         | 
| 30 | 
            -
                /// only the bundle owner may unstake tokens from the bundle
         | 
| 31 | 
            -
                /// bundle MUST be in active, locked or closed state
         | 
| 32 | 
            -
                function unstake(NftId bundleNftId, Amount amount) external;
         | 
| 33 | 
            -
             | 
| 34 | 
            -
                /// @dev extends the bundle lifetime of the bundle by the specified time
         | 
| 35 | 
            -
                /// only the bundle owner may extend the bundle's lifetime
         | 
| 36 | 
            -
                /// bundle MUST be in active or locked state
         | 
| 37 | 
            -
                function extend(NftId bundleNftId, Seconds lifetimeExtension) external;
         | 
| 38 | 
            -
             | 
| 39 | 
            -
                /// @dev locks the specified bundle
         | 
| 40 | 
            -
                /// a bundle to be locked MUST be in active state
         | 
| 41 | 
            -
                /// locked bundles may not be used to collateralize any new policy
         | 
| 42 | 
            -
                function lockBundle(NftId bundleNftId) external;
         | 
| 43 | 
            -
             | 
| 44 | 
            -
                /// @dev unlocks the specified bundle
         | 
| 45 | 
            -
                /// a bundle to be unlocked MUST be in locked state
         | 
| 46 | 
            -
                function unlockBundle(NftId bundleNftId) external;
         | 
| 47 | 
            -
             | 
| 48 | 
            -
                /// @dev close the specified bundle
         | 
| 49 | 
            -
                /// a bundle to be closed MUST be in active or locked state
         | 
| 50 | 
            -
                /// to close a bundle all all linked policies MUST be in closed state as well
         | 
| 51 | 
            -
                /// closing a bundle finalizes the bundle bookkeeping including overall profit calculation
         | 
| 52 | 
            -
                /// once a bundle is closed this action cannot be reversed
         | 
| 53 | 
            -
                function close(NftId bundleNftId) external;
         | 
| 54 | 
            -
             | 
| 55 | 
            -
                /// @dev sets the fee for the specified bundle
         | 
| 56 | 
            -
                /// the fee is added on top of the poolFee and deducted from the premium amounts
         | 
| 57 | 
            -
                /// via these fees individual bundler owner may earn income per policy in the context of peer to peer pools
         | 
| 58 | 
            -
                function setBundleFee(
         | 
| 59 | 
            -
                    NftId bundleNftId, 
         | 
| 60 | 
            -
                    Fee memory fee
         | 
| 61 | 
            -
                ) external;
         | 
| 62 | 
            -
             | 
| 63 | 
            -
                /// @dev sets the maximum overall capital amound held by this pool
         | 
| 64 | 
            -
                /// function may only be called by pool owner
         | 
| 65 | 
            -
                function setMaxCapitalAmount(Amount maxCapitalAmount) external;
         | 
| 66 | 
            -
             | 
| 67 | 
            -
                /// @dev sets the required role to create/own bundles
         | 
| 68 | 
            -
                /// may only be called once after setting up a pool
         | 
| 69 | 
            -
                /// may only be called by pool owner 
         | 
| 70 | 
            -
                function setBundleOwnerRole(RoleId bundleOwnerRole) external;
         | 
| 71 | 
            -
             | 
| 72 | 
            -
                /// @dev update pool fees to the specified values
         | 
| 73 | 
            -
                /// pool fees: are deducted from the premium amount and goes to the pool owner
         | 
| 74 | 
            -
                /// staking fees: are deducted from the staked tokens by a bundle owner and goes to the pool owner
         | 
| 75 | 
            -
                /// performance fees: when a bundle is closed a bundle specific profit is calculated
         | 
| 76 | 
            -
                /// the performance fee is deducted from this profit and goes to the pool owner
         | 
| 77 | 
            -
                function setFees(
         | 
| 78 | 
            -
                    Fee memory poolFee,
         | 
| 79 | 
            -
                    Fee memory stakingFee,
         | 
| 80 | 
            -
                    Fee memory performanceFee
         | 
| 81 | 
            -
                ) external;
         | 
| 82 | 
            -
             | 
| 83 23 | 
             
                /// @dev this is a callback function that is called by the product service when underwriting a policy.
         | 
| 84 24 | 
             
                /// the pool has the option to check the details and object to underwriting by reverting.
         | 
| 85 25 | 
             
                /// the function is only called for "active" pools that ask to be involved/notified
         | 
| @@ -106,6 +46,12 @@ interface IPoolComponent is IInstanceLinkedComponent { | |
| 106 46 | 
             
                    view
         | 
| 107 47 | 
             
                    returns (bool isMatching);
         | 
| 108 48 |  | 
| 49 | 
            +
                /// @dev Withdraw bundle feeds for the given bundle
         | 
| 50 | 
            +
                /// @param bundleNftId the bundle Nft Id
         | 
| 51 | 
            +
                /// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
         | 
| 52 | 
            +
                /// @return withdrawnAmount the effective withdrawn amount
         | 
| 53 | 
            +
                function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
         | 
| 54 | 
            +
             | 
| 109 55 | 
             
                /// @dev returns initial pool specific infos for this pool
         | 
| 110 56 | 
             
                function getInitialPoolInfo() external view returns (IComponents.PoolInfo memory info);
         | 
| 111 57 |  |