@etherisc/gif-next 0.0.2-fd4ee14-428 → 0.0.2-fd5f17a-625
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 +49 -4
- 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 +95 -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 -10
- 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 +1342 -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 -450
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +255 -233
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +67 -106
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +91 -160
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +152 -47
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
- 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 +28 -178
- 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 +290 -141
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +52 -224
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -110
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +227 -238
- 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 +979 -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 -37
- 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 +40 -315
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -144
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -85
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1248 -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 +402 -174
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -94
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +45 -290
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -100
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +45 -576
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +264 -248
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +40 -87
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +31 -162
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +31 -94
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1096 -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 +185 -175
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +58 -105
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +114 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +184 -119
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +32 -79
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +242 -321
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +55 -106
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +113 -265
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +55 -126
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +35 -378
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +583 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +651 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +246 -42
- 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 +464 -99
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +336 -376
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -130
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -78
- 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 +1169 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +43 -16
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +0 -211
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +242 -185
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +69 -112
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -112
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
- 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 -37
- 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/IPolicyHolder.sol/IPolicyHolder.json +0 -42
- 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 +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -275
- 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 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +4 -136
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +0 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +27 -27
- 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 +85 -105
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +85 -262
- 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 +47 -94
- 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 -138
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -82
- 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 +58 -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 +50 -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 +23 -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 +566 -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 -305
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +217 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +8 -5
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +21 -17
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +145 -111
- package/contracts/distribution/DistributionService.sol +80 -41
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +23 -3
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +14 -38
- package/contracts/instance/IInstanceService.sol +13 -18
- package/contracts/instance/Instance.sol +68 -102
- package/contracts/instance/InstanceAdmin.sol +221 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +54 -16
- package/contracts/instance/InstanceService.sol +112 -84
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +23 -5
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +1 -7
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +22 -22
- package/contracts/mock/Dip.sol +1 -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 +73 -51
- package/contracts/oracle/OracleService.sol +4 -3
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +192 -50
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +33 -5
- package/contracts/pool/IPoolComponent.sol +6 -60
- package/contracts/pool/IPoolService.sol +36 -26
- package/contracts/pool/Pool.sol +165 -138
- package/contracts/pool/PoolService.sol +165 -108
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +53 -59
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +120 -75
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +28 -5
- package/contracts/product/IPolicyService.sol +27 -32
- package/contracts/product/IPricingService.sol +7 -7
- package/contracts/product/IProductComponent.sol +7 -10
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +280 -182
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +44 -43
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +162 -114
- package/contracts/product/{ProductService.sol → RiskService.sol} +11 -38
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +65 -32
- package/contracts/registry/IRegistry.sol +63 -19
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +333 -213
- package/contracts/registry/RegistryAdmin.sol +260 -129
- package/contracts/registry/RegistryService.sol +6 -20
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +491 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +16 -17
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +30 -43
- package/contracts/shared/ComponentService.sol +99 -75
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +2 -2
- package/contracts/shared/IComponent.sol +4 -4
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -7
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IPolicyHolder.sol +0 -9
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +51 -23
- 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 +7 -7
- package/contracts/shared/PolicyHolder.sol +7 -53
- package/contracts/shared/Registerable.sol +4 -4
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +8 -9
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +3 -3
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +26 -41
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingService.sol +10 -14
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +15 -23
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +12 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ObjectType.sol +52 -18
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/StateId.sol +1 -0
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +34 -9
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +4 -5
- 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/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/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 -171
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- 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/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -527
- 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
@@ -2,36 +2,25 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IBundle} from "../instance/module/IBundle.sol";
|
5
|
+
import {IBundleService} from "./IBundleService.sol";
|
5
6
|
import {IComponents} from "../instance/module/IComponents.sol";
|
6
7
|
import {IComponentService} from "../shared/IComponentService.sol";
|
7
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
9
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
8
10
|
import {IInstance} from "../instance/IInstance.sol";
|
9
11
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
10
12
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
13
|
|
12
|
-
import {
|
13
|
-
import {
|
14
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
15
|
+
import {BundleSet} from "../instance/BundleSet.sol";
|
16
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
17
|
+
import {Fee} from "../type/Fee.sol";
|
18
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
14
19
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
15
20
|
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
21
|
import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
|
22
22
|
import {Seconds} from "../type/Seconds.sol";
|
23
|
-
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";
|
23
|
+
import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
35
24
|
|
36
25
|
string constant BUNDLE_SERVICE_NAME = "BundleService";
|
37
26
|
|
@@ -39,8 +28,7 @@ contract BundleService is
|
|
39
28
|
ComponentVerifyingService,
|
40
29
|
IBundleService
|
41
30
|
{
|
42
|
-
|
43
|
-
|
31
|
+
|
44
32
|
string public constant NAME = "BundleService";
|
45
33
|
|
46
34
|
address private _registryAddress;
|
@@ -52,20 +40,20 @@ contract BundleService is
|
|
52
40
|
bytes memory data
|
53
41
|
)
|
54
42
|
internal
|
55
|
-
initializer
|
56
43
|
virtual override
|
44
|
+
initializer()
|
57
45
|
{
|
58
46
|
address registryAddress;
|
59
47
|
address initialOwner;
|
60
48
|
(registryAddress, initialOwner) = abi.decode(data, (address, address));
|
61
49
|
// TODO while PoolService is not deployed in PoolServiceManager constructor
|
62
50
|
// owner is PoolServiceManager deployer
|
63
|
-
|
51
|
+
_initializeService(registryAddress, address(0), owner);
|
64
52
|
|
65
53
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
66
54
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
67
55
|
|
68
|
-
|
56
|
+
_registerInterface(type(IBundleService).interfaceId);
|
69
57
|
}
|
70
58
|
|
71
59
|
|
@@ -123,25 +111,28 @@ contract BundleService is
|
|
123
111
|
InstanceStore instanceStore = instance.getInstanceStore();
|
124
112
|
instanceStore.createBundle(
|
125
113
|
bundleNftId,
|
126
|
-
IBundle.BundleInfo(
|
127
|
-
poolNftId,
|
128
|
-
bundleFee,
|
129
|
-
filter,
|
130
|
-
|
131
|
-
TimestampLib.blockTimestamp().addSeconds(lifetime),
|
132
|
-
zeroTimestamp()
|
114
|
+
IBundle.BundleInfo({
|
115
|
+
poolNftId: poolNftId,
|
116
|
+
fee: bundleFee,
|
117
|
+
filter: filter,
|
118
|
+
activatedAt: TimestampLib.blockTimestamp(),
|
119
|
+
expiredAt: TimestampLib.blockTimestamp().addSeconds(lifetime),
|
120
|
+
closedAt: zeroTimestamp()
|
121
|
+
})
|
122
|
+
);
|
133
123
|
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
124
|
+
if (stakingAmount.gtz()) {
|
125
|
+
// bundle book keeping
|
126
|
+
_componentService.increaseBundleBalance(
|
127
|
+
instanceStore,
|
128
|
+
bundleNftId,
|
129
|
+
stakingAmount,
|
130
|
+
AmountLib.zero()); // fee amount
|
131
|
+
}
|
140
132
|
|
141
133
|
// put bundle under bundle managemet
|
142
|
-
|
134
|
+
BundleSet bundleManager = instance.getBundleSet();
|
143
135
|
bundleManager.add(bundleNftId);
|
144
|
-
|
145
136
|
// TODO add logging
|
146
137
|
}
|
147
138
|
|
@@ -158,7 +149,7 @@ contract BundleService is
|
|
158
149
|
restricted()
|
159
150
|
{
|
160
151
|
InstanceReader instanceReader = instance.getInstanceReader();
|
161
|
-
StateId bundleState =
|
152
|
+
StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
|
162
153
|
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
163
154
|
|
164
155
|
// ensure bundle is active and not yet expired
|
@@ -197,7 +188,7 @@ contract BundleService is
|
|
197
188
|
instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
|
198
189
|
|
199
190
|
// update set of active bundles
|
200
|
-
|
191
|
+
BundleSet bundleManager = instance.getBundleSet();
|
201
192
|
bundleManager.lock(bundleNftId);
|
202
193
|
|
203
194
|
emit LogBundleServiceBundleLocked(bundleNftId);
|
@@ -214,7 +205,7 @@ contract BundleService is
|
|
214
205
|
instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
|
215
206
|
|
216
207
|
// update set of active bundles
|
217
|
-
|
208
|
+
BundleSet bundleManager = instance.getBundleSet();
|
218
209
|
bundleManager.unlock(bundleNftId);
|
219
210
|
|
220
211
|
emit LogBundleServiceBundleActivated(bundleNftId);
|
@@ -228,19 +219,128 @@ contract BundleService is
|
|
228
219
|
external
|
229
220
|
virtual
|
230
221
|
restricted
|
222
|
+
returns (Amount unstakedAmount, Amount feeAmount)
|
231
223
|
{
|
232
|
-
|
233
|
-
instance.getInstanceStore().updateBundleState(bundleNftId, CLOSED());
|
224
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
234
225
|
|
235
226
|
// ensure no open policies attached to bundle
|
236
|
-
|
227
|
+
BundleSet bundleManager = instance.getBundleSet();
|
237
228
|
uint256 openPolicies = bundleManager.activePolicies(bundleNftId);
|
238
229
|
if(openPolicies > 0) {
|
239
230
|
revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
|
240
231
|
}
|
241
232
|
|
242
|
-
|
243
|
-
|
233
|
+
{
|
234
|
+
// update bundle state
|
235
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
236
|
+
instanceStore.updateBundleState(bundleNftId, CLOSED());
|
237
|
+
bundleManager.lock(bundleNftId);
|
238
|
+
|
239
|
+
// decrease bundle counters
|
240
|
+
Amount balanceAmountWithFees = instanceReader.getBalanceAmount(bundleNftId);
|
241
|
+
feeAmount = instanceReader.getFeeAmount(bundleNftId);
|
242
|
+
unstakedAmount = balanceAmountWithFees - feeAmount;
|
243
|
+
_componentService.decreaseBundleBalance(instanceStore, bundleNftId, unstakedAmount, feeAmount);
|
244
|
+
}
|
245
|
+
}
|
246
|
+
|
247
|
+
/// @inheritdoc IBundleService
|
248
|
+
function stake(
|
249
|
+
IInstance instance,
|
250
|
+
NftId bundleNftId,
|
251
|
+
Amount amount
|
252
|
+
)
|
253
|
+
external
|
254
|
+
virtual
|
255
|
+
// TODO: restricted() (once #462 is done)
|
256
|
+
{
|
257
|
+
IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
|
258
|
+
StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
|
259
|
+
|
260
|
+
if( (bundleState != ACTIVE() && bundleState != PAUSED()) // locked bundles can be staked
|
261
|
+
|| bundleInfo.expiredAt < TimestampLib.blockTimestamp()
|
262
|
+
|| bundleInfo.closedAt.gtz()) {
|
263
|
+
revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
|
264
|
+
}
|
265
|
+
|
266
|
+
_componentService.increaseBundleBalance(
|
267
|
+
instance.getInstanceStore(),
|
268
|
+
bundleNftId,
|
269
|
+
amount,
|
270
|
+
AmountLib.zero());
|
271
|
+
}
|
272
|
+
|
273
|
+
/// @inheritdoc IBundleService
|
274
|
+
function unstake(
|
275
|
+
IInstance instance,
|
276
|
+
NftId bundleNftId,
|
277
|
+
Amount amount
|
278
|
+
)
|
279
|
+
external
|
280
|
+
virtual
|
281
|
+
// TODO: restricted() (once #462 is done)
|
282
|
+
returns (Amount unstakedAmount)
|
283
|
+
{
|
284
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
285
|
+
(
|
286
|
+
Amount balanceAmount,
|
287
|
+
Amount lockedAmount,
|
288
|
+
Amount feeAmount
|
289
|
+
) = instanceStore.getAmounts(bundleNftId);
|
290
|
+
|
291
|
+
Amount unstakedAmount = amount;
|
292
|
+
Amount availableAmount = balanceAmount - (lockedAmount + feeAmount);
|
293
|
+
|
294
|
+
// if amount is max, then unstake all available
|
295
|
+
if (amount.gte(AmountLib.max())) {
|
296
|
+
unstakedAmount = availableAmount;
|
297
|
+
}
|
298
|
+
|
299
|
+
// ensure unstaked amount does not exceed available amount
|
300
|
+
if (unstakedAmount > availableAmount) {
|
301
|
+
revert ErrorBundleServiceUnstakeAmountExceedsLimit(amount, availableAmount);
|
302
|
+
}
|
303
|
+
|
304
|
+
_componentService.decreaseBundleBalance(
|
305
|
+
instanceStore,
|
306
|
+
bundleNftId,
|
307
|
+
unstakedAmount,
|
308
|
+
AmountLib.zero());
|
309
|
+
|
310
|
+
return unstakedAmount;
|
311
|
+
}
|
312
|
+
|
313
|
+
/// @inheritdoc IBundleService
|
314
|
+
function extend(NftId bundleNftId, Seconds lifetimeExtension)
|
315
|
+
external
|
316
|
+
virtual
|
317
|
+
// TODO: restricted() (once #462 is done)
|
318
|
+
returns (Timestamp extendedExpiredAt)
|
319
|
+
{
|
320
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
321
|
+
IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
|
322
|
+
StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
|
323
|
+
|
324
|
+
// ensure bundle belongs to the pool
|
325
|
+
if (bundleInfo.poolNftId != poolNftId) {
|
326
|
+
revert ErrorBundleServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
|
327
|
+
}
|
328
|
+
|
329
|
+
// ensure bundle is active and not yet expired
|
330
|
+
if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
|
331
|
+
revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
|
332
|
+
}
|
333
|
+
|
334
|
+
if (lifetimeExtension.eqz()) {
|
335
|
+
revert ErrorBundleServiceExtensionLifetimeIsZero();
|
336
|
+
}
|
337
|
+
|
338
|
+
bundleInfo.expiredAt = bundleInfo.expiredAt.addSeconds(lifetimeExtension);
|
339
|
+
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
340
|
+
|
341
|
+
emit LogBundleServiceBundleExtended(bundleNftId, lifetimeExtension, bundleInfo.expiredAt);
|
342
|
+
|
343
|
+
return bundleInfo.expiredAt;
|
244
344
|
}
|
245
345
|
|
246
346
|
|
@@ -271,7 +371,49 @@ contract BundleService is
|
|
271
371
|
revert ErrorBundleServicePolicyNotCloseable(policyNftId);
|
272
372
|
}
|
273
373
|
|
274
|
-
instance.
|
374
|
+
instance.getBundleSet().unlinkPolicy(policyNftId);
|
375
|
+
}
|
376
|
+
|
377
|
+
/// @inheritdoc IBundleService
|
378
|
+
function withdrawBundleFees(NftId bundleNftId, Amount amount)
|
379
|
+
public
|
380
|
+
virtual
|
381
|
+
// TODO: restricted() (once #462 is done)
|
382
|
+
returns (Amount withdrawnAmount)
|
383
|
+
{
|
384
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
385
|
+
InstanceReader reader = instance.getInstanceReader();
|
386
|
+
|
387
|
+
IComponents.ComponentInfo memory poolInfo = reader.getComponentInfo(poolNftId);
|
388
|
+
address poolWallet = poolInfo.wallet;
|
389
|
+
|
390
|
+
IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
391
|
+
|
392
|
+
// determine withdrawn amount
|
393
|
+
withdrawnAmount = amount;
|
394
|
+
if (withdrawnAmount.gte(AmountLib.max())) {
|
395
|
+
withdrawnAmount = reader.getFeeAmount(bundleNftId);
|
396
|
+
} else {
|
397
|
+
if (withdrawnAmount.gt(reader.getFeeAmount(bundleNftId))) {
|
398
|
+
revert ErrorBundleServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
|
399
|
+
}
|
400
|
+
}
|
401
|
+
|
402
|
+
// decrease fee counters by withdrawnAmount
|
403
|
+
{
|
404
|
+
InstanceStore store = instance.getInstanceStore();
|
405
|
+
// decrease fee amount of the bundle
|
406
|
+
_componentService.decreaseBundleBalance(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
|
407
|
+
// decrease pool balance
|
408
|
+
_componentService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
|
409
|
+
}
|
410
|
+
|
411
|
+
// transfer amount to bundle owner
|
412
|
+
{
|
413
|
+
address owner = getRegistry().ownerOf(bundleNftId);
|
414
|
+
emit LogBundleServiceFeesWithdrawn(bundleNftId, owner, address(poolInfo.token), withdrawnAmount);
|
415
|
+
poolInfo.tokenHandler.distributeTokens(poolWallet, owner, withdrawnAmount);
|
416
|
+
}
|
275
417
|
}
|
276
418
|
|
277
419
|
/// @dev links policy to bundle
|
@@ -283,10 +425,10 @@ contract BundleService is
|
|
283
425
|
|
284
426
|
// ensure policy has not yet been activated in a previous tx already
|
285
427
|
if (policyInfo.activatedAt.gtz() && policyInfo.activatedAt < TimestampLib.blockTimestamp()) {
|
286
|
-
revert
|
428
|
+
revert BundleSet.ErrorBundleSetPolicyAlreadyActivated(policyNftId);
|
287
429
|
}
|
288
430
|
|
289
|
-
|
431
|
+
BundleSet bundleManager = instance.getBundleSet();
|
290
432
|
bundleManager.linkPolicy(policyNftId);
|
291
433
|
}
|
292
434
|
|
@@ -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,15 @@ interface IBundleService is IService {
|
|
26
26
|
|
27
27
|
error ErrorBundleServicePolicyNotCloseable(NftId policyNftId);
|
28
28
|
|
29
|
+
error ErrorBundleServiceFeesWithdrawAmountExceedsLimit(Amount amount, Amount limit);
|
30
|
+
|
31
|
+
error ErrorBundleServiceUnstakeAmountExceedsLimit(Amount amount, Amount limit);
|
32
|
+
|
33
|
+
error ErrorBundleServiceExtensionLifetimeIsZero();
|
34
|
+
|
35
|
+
event LogBundleServiceFeesWithdrawn(NftId bundleNftId, address recipient, address tokenAddress, Amount amount);
|
36
|
+
event LogBundleServiceBundleExtended(NftId bundleNftId, Seconds lifetimeExtension, Timestamp extendedExpiredAt);
|
37
|
+
|
29
38
|
/// @dev create a new bundle for the specified attributes
|
30
39
|
/// may only be called by pool service
|
31
40
|
function create(
|
@@ -41,11 +50,20 @@ interface IBundleService is IService {
|
|
41
50
|
returns(NftId bundleNftId); // the nft id of the newly created bundle
|
42
51
|
|
43
52
|
|
44
|
-
/// @dev increase bundle stakes by the specified amount
|
45
|
-
/// may only be called by the
|
46
|
-
|
53
|
+
/// @dev increase bundle stakes by the specified amount. bundle must not be expired or closed
|
54
|
+
/// may only be called by the pool service
|
55
|
+
function stake(IInstance instance, NftId bundleNftId, Amount amount) external;
|
56
|
+
|
57
|
+
/// @dev decrease bundle stakes by the specified amount
|
58
|
+
/// may only be called by the pool service
|
59
|
+
/// @param instance the instance relevant for the bundle
|
60
|
+
/// @param bundleNftId the bundle nft id
|
61
|
+
/// @param amount the amount to unstake (set to AmountLib.max() to unstake all available stakes)
|
62
|
+
/// @return unstakedAmount the effective unstaked amount
|
63
|
+
function unstake(IInstance instance, NftId bundleNftId, Amount amount) external returns (Amount unstakedAmount);
|
47
64
|
|
48
|
-
|
65
|
+
/// @dev extend the lifetime of the bundle by the specified time in seconds
|
66
|
+
function extend(NftId bundleNftId, Seconds lifetimeExtension) external returns (Timestamp extendedExpiredAt);
|
49
67
|
|
50
68
|
/// @dev locks the specified bundle, locked bundles are not available to collateralize new policies
|
51
69
|
/// only active bundles may be locked
|
@@ -61,10 +79,12 @@ interface IBundleService is IService {
|
|
61
79
|
/// only open bundles (active or locked) may be closed
|
62
80
|
/// to close a bundle it may not have any non-closed polices attached to it
|
63
81
|
/// may only be called by registered and unlocked pool components
|
82
|
+
/// @return balanceAmount the unstaked amount that was remaining in the bundle
|
83
|
+
/// @return feeAmount the fee amount that was remaining for the bundle
|
64
84
|
function close(
|
65
85
|
IInstance instance,
|
66
86
|
NftId bundleNftId
|
67
|
-
) external;
|
87
|
+
) external returns (Amount balanceAmount, Amount feeAmount);
|
68
88
|
|
69
89
|
/// @dev set bundle fee to provided value
|
70
90
|
/// may only be called by registered and unlocked pool components
|
@@ -103,4 +123,12 @@ interface IBundleService is IService {
|
|
103
123
|
IInstance instance,
|
104
124
|
NftId policyNftId
|
105
125
|
) external;
|
126
|
+
|
127
|
+
// FIXME: move to pool service
|
128
|
+
/// @dev Withdraw bundle feeds for the given bundle
|
129
|
+
/// @param bundleNftId the bundle Nft Id
|
130
|
+
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
131
|
+
/// @return withdrawnAmount the effective withdrawn amount
|
132
|
+
function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
|
133
|
+
|
106
134
|
}
|
@@ -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
|
|
@@ -17,29 +17,26 @@ import {UFixed} from "../type/UFixed.sol";
|
|
17
17
|
|
18
18
|
interface IPoolService is IService {
|
19
19
|
|
20
|
-
event
|
20
|
+
event LogPoolServiceMaxBalanceAmountUpdated(NftId poolNftId, Amount previousMaxCapitalAmount, Amount currentMaxCapitalAmount);
|
21
21
|
event LogPoolServiceBundleOwnerRoleSet(NftId poolNftId, RoleId bundleOwnerRole);
|
22
22
|
|
23
23
|
event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
24
24
|
event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
25
25
|
|
26
|
+
event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
27
|
+
event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount);
|
28
|
+
|
26
29
|
error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
|
27
30
|
error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
|
28
|
-
|
31
|
+
error ErrorPoolServiceBundlePoolMismatch(NftId bundleNftId, NftId poolNftId);
|
32
|
+
error ErrorPoolServiceMaxBalanceAmountExceeded(NftId poolNftId, Amount maxBalanceAmount, Amount currentBalanceAmount, Amount transferAmount);
|
33
|
+
|
29
34
|
/// @dev defines the required role for bundle owners for the calling pool
|
30
35
|
/// default implementation returns PUBLIC ROLE
|
31
36
|
function setBundleOwnerRole(RoleId bundleOwnerRole) external;
|
32
37
|
|
33
|
-
/// @dev sets the max
|
34
|
-
function
|
35
|
-
|
36
|
-
/// @dev set pool sepecific fees
|
37
|
-
function setFees(
|
38
|
-
Fee memory poolFee,
|
39
|
-
Fee memory stakingFee,
|
40
|
-
Fee memory performanceFee
|
41
|
-
) external;
|
42
|
-
|
38
|
+
/// @dev sets the max balance amount for the calling pool
|
39
|
+
function setMaxBalanceAmount(Amount maxBalanceAmount) external;
|
43
40
|
|
44
41
|
/// @dev locks required collateral to cover the specified application (and turn it into a policy)
|
45
42
|
/// - retention level == 1: the full collateral amount will be locked by the specified bundle
|
@@ -83,13 +80,11 @@ interface IPoolService is IService {
|
|
83
80
|
) external;
|
84
81
|
|
85
82
|
|
86
|
-
/// @dev create a new bundle
|
87
|
-
///
|
88
|
-
/// may only be called by registered and unlocked pool components
|
83
|
+
/// @dev create a new empty bundle with the provided parameters
|
84
|
+
/// may only be called by registered and unlocked pool components.
|
89
85
|
function createBundle(
|
90
86
|
address owner, // initial bundle owner
|
91
87
|
Fee memory fee, // fees deducted from premium that go to bundle owner
|
92
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
93
88
|
Seconds lifetime, // initial duration for which new policies are covered
|
94
89
|
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
95
90
|
)
|
@@ -97,6 +92,18 @@ interface IPoolService is IService {
|
|
97
92
|
returns(NftId bundleNftId); // the nft id of the newly created bundle
|
98
93
|
|
99
94
|
|
95
|
+
/// @dev increase stakes for bundle
|
96
|
+
/// staking fees will be deducted by the pool service from the staking amount
|
97
|
+
/// may only be called by registered and unlocked pool components
|
98
|
+
function stake(NftId bundleNftId, Amount amount) external returns(Amount netAmount);
|
99
|
+
|
100
|
+
|
101
|
+
/// @dev decrease stakes for bundle
|
102
|
+
/// performance fees will be deducted by the pool service from the staking amount
|
103
|
+
/// may only be called by registered and unlocked pool components
|
104
|
+
function unstake(NftId bundleNftId, Amount amount) external returns(Amount netAmount);
|
105
|
+
|
106
|
+
|
100
107
|
/// @dev closes the specified bundle
|
101
108
|
/// only open bundles (active or locked) may be closed
|
102
109
|
/// to close a bundle it may not have any non-closed polices attached to it
|
@@ -105,19 +112,22 @@ interface IPoolService is IService {
|
|
105
112
|
function closeBundle(NftId bundleNftId) external;
|
106
113
|
|
107
114
|
|
108
|
-
/// @dev
|
109
|
-
function
|
115
|
+
/// @dev Fund the specified pool wallet with the provided amount.
|
116
|
+
/// This function will collect the amount from the sender address and transfers it to the pool wallet.
|
117
|
+
/// The function will not update balance amounts managed by the framework.
|
118
|
+
/// Only available for externally managed pools.
|
119
|
+
function fundPoolWallet(NftId poolNftId, Amount amount) external;
|
110
120
|
|
111
|
-
/// @dev increase stakes for bundle
|
112
|
-
/// staking fees will be deducted by the pool service from the staking amount
|
113
|
-
/// may only be called by registered and unlocked pool components
|
114
|
-
// function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
|
115
121
|
|
122
|
+
/// @dev Defund the specified pool wallet with the provided amount.
|
123
|
+
/// This function will transfer the amount from the pool wallet to the sender address.
|
124
|
+
/// The function will not update balance amounts managed by the framework.
|
125
|
+
/// Only available for externally managed pools.
|
126
|
+
function defundPoolWallet(NftId poolNftId, Amount amount) external;
|
116
127
|
|
117
|
-
|
118
|
-
///
|
119
|
-
|
120
|
-
// function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
|
128
|
+
|
129
|
+
/// @dev processes the sale of a bundle and track the pool fee and bundle fee amounts
|
130
|
+
function processSale(NftId bundleNftId, IPolicy.PremiumInfo memory premium) external;
|
121
131
|
|
122
132
|
|
123
133
|
/// @dev calulate required collateral for the provided parameters
|