@etherisc/gif-next 0.0.2-c00cf5d-513 → 0.0.2-c0457ac-280
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/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +198 -177
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +130 -335
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +67 -96
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +83 -108
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +35 -48
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +32 -101
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +65 -66
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +163 -10
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +81 -93
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +56 -40
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +84 -44
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +458 -331
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +268 -46
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +74 -43
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1095 -344
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +2 -71
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +91 -264
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +56 -69
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -51
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +145 -86
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +134 -133
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +242 -103
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +180 -376
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +42 -83
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +93 -167
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +56 -45
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +121 -211
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +64 -61
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +20 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +20 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +94 -25
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +40 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +241 -107
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -55
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +180 -297
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +54 -99
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +163 -174
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +81 -54
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +337 -157
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +47 -230
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +34 -47
- 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 +65 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +153 -1
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +294 -15
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1712 -103
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +198 -28
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +45 -42
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +321 -161
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -136
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +1 -1
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +42 -10
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +1 -1
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +42 -10
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +1 -1
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +52 -20
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +1 -1
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +52 -20
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +100 -96
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +916 -55
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +1 -1
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +76 -81
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +1 -11
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +33 -20
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +19 -32
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +17 -22
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +16 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +40 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +566 -54
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +657 -100
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +65 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
- 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 +68 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +34 -34
- 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 +47 -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 +96 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +114 -4
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +76 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- 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 +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- 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 +2 -2
- package/contracts/distribution/Distribution.sol +29 -53
- package/contracts/distribution/DistributionService.sol +61 -115
- package/contracts/distribution/IDistributionComponent.sol +5 -10
- package/contracts/distribution/IDistributionService.sol +2 -8
- package/contracts/instance/IInstance.sol +15 -7
- package/contracts/instance/IInstanceService.sol +35 -10
- package/contracts/instance/Instance.sol +63 -34
- package/contracts/instance/InstanceAdmin.sol +3 -2
- package/contracts/instance/InstanceAuthorizationsLib.sol +84 -27
- package/contracts/instance/InstanceReader.sol +64 -40
- package/contracts/instance/InstanceService.sol +185 -45
- package/contracts/instance/InstanceStore.sol +122 -64
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectManager.sol +1 -3
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +15 -4
- package/contracts/instance/module/IPolicy.sol +8 -2
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/IOracle.sol +20 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +145 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BundleService.sol +79 -167
- package/contracts/pool/IBundleService.sol +4 -16
- package/contracts/pool/IPoolComponent.sol +4 -6
- package/contracts/pool/IPoolService.sol +45 -9
- package/contracts/pool/Pool.sol +39 -42
- package/contracts/pool/PoolService.sol +190 -142
- package/contracts/product/ApplicationService.sol +109 -42
- package/contracts/product/ClaimService.sol +18 -19
- package/contracts/product/IApplicationService.sol +1 -1
- package/contracts/product/IClaimService.sol +7 -1
- package/contracts/product/IPolicyService.sol +6 -8
- package/contracts/product/IPricingService.sol +3 -1
- package/contracts/product/IProductComponent.sol +7 -6
- package/contracts/product/IProductService.sol +1 -8
- package/contracts/product/PolicyService.sol +225 -128
- package/contracts/product/PricingService.sol +72 -48
- package/contracts/product/Product.sol +47 -49
- package/contracts/product/ProductService.sol +26 -114
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +15 -4
- package/contracts/registry/IRegistryService.sol +10 -0
- package/contracts/registry/IServiceAuthorization.sol +35 -0
- package/contracts/registry/Registry.sol +164 -47
- package/contracts/registry/RegistryAdmin.sol +264 -72
- package/contracts/registry/RegistryService.sol +48 -14
- package/contracts/registry/RegistryServiceManager.sol +2 -9
- package/contracts/registry/ReleaseManager.sol +242 -177
- package/contracts/registry/ServiceAuthorization.sol +86 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -64
- package/contracts/shared/AccessAdmin.sol +759 -0
- package/contracts/shared/AccessManagerCustom.sol +6 -1
- package/contracts/shared/AccessManagerExtended.sol +19 -7
- package/contracts/shared/Component.sol +139 -129
- package/contracts/shared/ComponentService.sol +563 -88
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IAccessAdmin.sol +168 -0
- package/contracts/shared/IComponent.sol +17 -37
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +6 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +6 -1
- package/contracts/shared/IService.sol +8 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +144 -0
- package/contracts/{instance/base → shared}/KeyValueStore.sol +30 -72
- package/contracts/{instance/base → shared}/Lifecycle.sol +12 -3
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +3 -13
- package/contracts/shared/PolicyHolder.sol +21 -13
- package/contracts/shared/ProxyManager.sol +2 -3
- package/contracts/shared/Registerable.sol +2 -2
- package/contracts/shared/Service.sol +32 -21
- package/contracts/shared/TokenHandler.sol +24 -1
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +98 -47
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +513 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +286 -44
- package/contracts/staking/StakingServiceManager.sol +7 -3
- package/contracts/staking/StakingStore.sol +613 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +20 -1
- package/contracts/type/Blocknumber.sol +20 -3
- package/contracts/type/Fee.sol +17 -16
- package/contracts/type/NftId.sol +14 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +142 -63
- package/contracts/type/Referral.sol +1 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +82 -20
- package/contracts/type/Seconds.sol +27 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +27 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +6 -2
- package/contracts/type/Version.sol +1 -1
- package/package.json +3 -3
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
@@ -1,18 +1,18 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IBundle} from "../instance/module/IBundle.sol";
|
5
5
|
import {IComponents} from "../instance/module/IComponents.sol";
|
6
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
6
7
|
import {IRegistry} from "../registry/IRegistry.sol";
|
7
8
|
import {IInstance} from "../instance/IInstance.sol";
|
8
|
-
import {
|
9
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
9
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
10
10
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
11
|
|
12
12
|
import {IVersionable} from "../shared/IVersionable.sol";
|
13
13
|
import {INftOwnable} from "../shared/INftOwnable.sol";
|
14
|
-
import {NftId, NftIdLib
|
15
|
-
import {ObjectType, POOL, BUNDLE} from "../type/ObjectType.sol";
|
14
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
15
|
+
import {ObjectType, COMPONENT, POOL, BUNDLE, REGISTRY} from "../type/ObjectType.sol";
|
16
16
|
import {POOL_OWNER_ROLE, RoleId} from "../type/RoleId.sol";
|
17
17
|
import {Pool} from "./Pool.sol";
|
18
18
|
|
@@ -27,7 +27,7 @@ import {Versionable} from "../shared/Versionable.sol";
|
|
27
27
|
import {IService} from "../shared/IService.sol";
|
28
28
|
import {Service} from "../shared/Service.sol";
|
29
29
|
import {BundleManager} from "../instance/BundleManager.sol";
|
30
|
-
import {
|
30
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
31
31
|
import {IBundleService} from "./IBundleService.sol";
|
32
32
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
33
33
|
import {InstanceService} from "../instance/InstanceService.sol";
|
@@ -36,14 +36,16 @@ import {InstanceReader} from "../instance/InstanceReader.sol";
|
|
36
36
|
string constant BUNDLE_SERVICE_NAME = "BundleService";
|
37
37
|
|
38
38
|
contract BundleService is
|
39
|
-
|
39
|
+
ComponentVerifyingService,
|
40
40
|
IBundleService
|
41
41
|
{
|
42
42
|
using NftIdLib for NftId;
|
43
43
|
|
44
44
|
string public constant NAME = "BundleService";
|
45
45
|
|
46
|
-
address
|
46
|
+
address private _registryAddress;
|
47
|
+
IRegistryService private _registryService;
|
48
|
+
IComponentService private _componentService;
|
47
49
|
|
48
50
|
function _initialize(
|
49
51
|
address owner,
|
@@ -53,62 +55,40 @@ contract BundleService is
|
|
53
55
|
initializer
|
54
56
|
virtual override
|
55
57
|
{
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
58
|
+
address registryAddress;
|
59
|
+
address initialOwner;
|
60
|
+
(registryAddress, initialOwner) = abi.decode(data, (address, address));
|
61
|
+
// TODO while PoolService is not deployed in PoolServiceManager constructor
|
62
|
+
// owner is PoolServiceManager deployer
|
63
|
+
initializeService(registryAddress, address(0), owner);
|
64
|
+
|
65
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
66
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
61
67
|
|
62
|
-
initializeService(registryAddress, authority, owner);
|
63
68
|
registerInterface(type(IBundleService).interfaceId);
|
64
69
|
}
|
65
70
|
|
66
|
-
function getDomain() public pure override returns(ObjectType) {
|
67
|
-
return BUNDLE();
|
68
|
-
}
|
69
71
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
// collateralize: additional reason to move to pool, pool might has retential level < 1 ...
|
74
|
-
// staking -> potentially accumulate staking fees
|
75
|
-
// unstaking -> potentially accumulate performance fees
|
76
|
-
function _updatePoolWithStakes(
|
77
|
-
IInstance instance,
|
78
|
-
NftId poolNftId,
|
79
|
-
Amount stakingAmount
|
72
|
+
function setFee(
|
73
|
+
NftId bundleNftId,
|
74
|
+
Fee memory fee
|
80
75
|
)
|
81
|
-
|
82
|
-
|
83
|
-
TokenHandler tokenHandler,
|
84
|
-
address wallet,
|
85
|
-
Amount netStakingAmount
|
86
|
-
)
|
76
|
+
external
|
77
|
+
virtual
|
87
78
|
{
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
96
|
-
Amount poolFeeAmount;
|
97
|
-
|
98
|
-
// calculate pool fee and net staking amount
|
99
|
-
(poolFeeAmount, netStakingAmount) = FeeLib.calculateFee(poolInfo.stakingFee, stakingAmount);
|
100
|
-
|
101
|
-
// update pool balance and fee amount
|
102
|
-
poolInfo.balanceAmount = poolInfo.balanceAmount + netStakingAmount;
|
103
|
-
|
104
|
-
if(poolFeeAmount.gtz()) {
|
105
|
-
poolInfo.feeAmount = poolInfo.feeAmount + poolFeeAmount;
|
106
|
-
}
|
79
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
80
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
81
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
82
|
+
if(bundleInfo.poolNftId.eqz()) {
|
83
|
+
revert ErrorBundleServiceBundleUnknown(bundleNftId);
|
84
|
+
}
|
107
85
|
|
108
|
-
|
109
|
-
|
110
|
-
instance.getInstanceStore().updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
|
86
|
+
if(bundleInfo.poolNftId != poolNftId) {
|
87
|
+
revert ErrorBundleServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
|
111
88
|
}
|
89
|
+
|
90
|
+
bundleInfo.fee = fee;
|
91
|
+
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
112
92
|
}
|
113
93
|
|
114
94
|
|
@@ -127,9 +107,9 @@ contract BundleService is
|
|
127
107
|
returns(NftId bundleNftId)
|
128
108
|
{
|
129
109
|
// register bundle with registry
|
130
|
-
bundleNftId =
|
110
|
+
bundleNftId = _registryService.registerBundle(
|
131
111
|
IRegistry.ObjectInfo(
|
132
|
-
|
112
|
+
NftIdLib.zero(),
|
133
113
|
poolNftId,
|
134
114
|
BUNDLE(),
|
135
115
|
false, // intercepting property for bundles is defined on pool
|
@@ -140,19 +120,24 @@ contract BundleService is
|
|
140
120
|
);
|
141
121
|
|
142
122
|
// create bundle info in instance
|
143
|
-
instance.getInstanceStore()
|
123
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
124
|
+
instanceStore.createBundle(
|
144
125
|
bundleNftId,
|
145
126
|
IBundle.BundleInfo(
|
146
127
|
poolNftId,
|
147
128
|
bundleFee,
|
148
129
|
filter,
|
149
|
-
stakingAmount,
|
150
|
-
AmountLib.zero(),
|
151
|
-
AmountLib.zero(),
|
152
130
|
lifetime,
|
153
131
|
TimestampLib.blockTimestamp().addSeconds(lifetime),
|
154
132
|
zeroTimestamp()));
|
155
133
|
|
134
|
+
// bundle book keeping
|
135
|
+
_componentService.increaseBundleBalance(
|
136
|
+
instanceStore,
|
137
|
+
bundleNftId,
|
138
|
+
stakingAmount,
|
139
|
+
AmountLib.zero()); // fee amount
|
140
|
+
|
156
141
|
// put bundle under bundle managemet
|
157
142
|
BundleManager bundleManager = instance.getBundleManager();
|
158
143
|
bundleManager.add(bundleNftId);
|
@@ -161,39 +146,16 @@ contract BundleService is
|
|
161
146
|
}
|
162
147
|
|
163
148
|
|
164
|
-
function setFee(
|
165
|
-
NftId bundleNftId,
|
166
|
-
Fee memory fee
|
167
|
-
)
|
168
|
-
external
|
169
|
-
override
|
170
|
-
{
|
171
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(POOL());
|
172
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
173
|
-
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
174
|
-
if(bundleInfo.poolNftId.eqz()) {
|
175
|
-
revert ErrorBundleServiceBundleUnknown(bundleNftId);
|
176
|
-
}
|
177
|
-
|
178
|
-
if(bundleInfo.poolNftId != poolNftId) {
|
179
|
-
revert ErrorBundleServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
|
180
|
-
}
|
181
|
-
|
182
|
-
bundleInfo.fee = fee;
|
183
|
-
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
184
|
-
}
|
185
|
-
|
186
|
-
|
187
149
|
// the bundle MUST be unlocked (active) for linking (underwriting) and registered with this instance
|
188
150
|
function lockCollateral(
|
189
151
|
IInstance instance,
|
190
152
|
NftId policyNftId,
|
191
153
|
NftId bundleNftId,
|
192
|
-
Amount collateralAmount
|
193
|
-
Amount premiumAmount // premium part that reaches bundle for this policy
|
154
|
+
Amount collateralAmount // required local amount to collateralize policy
|
194
155
|
)
|
195
156
|
external
|
196
|
-
|
157
|
+
virtual
|
158
|
+
restricted()
|
197
159
|
{
|
198
160
|
InstanceReader instanceReader = instance.getInstanceReader();
|
199
161
|
StateId bundleState = instanceReader.getMetadata(bundleNftId.toKey32(BUNDLE())).state;
|
@@ -205,65 +167,31 @@ contract BundleService is
|
|
205
167
|
}
|
206
168
|
|
207
169
|
// ensure bundle capacity is sufficent to collateralize policy
|
208
|
-
|
170
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
171
|
+
(
|
172
|
+
Amount balanceAmount,
|
173
|
+
Amount lockedAmount,
|
174
|
+
Amount feeAmount
|
175
|
+
) = instanceStore.getAmounts(bundleNftId);
|
176
|
+
|
177
|
+
Amount capacity = balanceAmount - (lockedAmount + feeAmount);
|
209
178
|
if(capacity < collateralAmount) {
|
210
179
|
revert ErrorBundleServiceCapacityInsufficient(bundleNftId, capacity, collateralAmount);
|
211
180
|
}
|
212
181
|
|
213
|
-
// TODO add more validation
|
214
|
-
|
215
182
|
// updated locked amount
|
216
|
-
|
217
|
-
|
218
|
-
// update capital and fees when premiums are involved
|
219
|
-
_updateBundleWithPremium(instance, bundleNftId, bundleInfo, premiumAmount);
|
183
|
+
instanceStore.increaseLocked(bundleNftId, collateralAmount);
|
220
184
|
|
221
185
|
// link policy to bundle in bundle manger
|
222
186
|
_linkPolicy(instance, policyNftId);
|
223
187
|
}
|
224
188
|
|
225
189
|
|
226
|
-
function _updateBundleWithPremium(
|
227
|
-
IInstance instance,
|
228
|
-
NftId bundleNftId,
|
229
|
-
IBundle.BundleInfo memory bundleInfo,
|
230
|
-
Amount premiumAmount
|
231
|
-
)
|
232
|
-
internal
|
233
|
-
{
|
234
|
-
// update bundle capital and fee amounts
|
235
|
-
if(premiumAmount.gtz()) {
|
236
|
-
// calculate fees and net premium amounts
|
237
|
-
(
|
238
|
-
,
|
239
|
-
Amount netPremiumAmount
|
240
|
-
) = FeeLib.calculateFee(bundleInfo.fee, premiumAmount);
|
241
|
-
|
242
|
-
// update bundle info with additional capital
|
243
|
-
bundleInfo.capitalAmount = bundleInfo.capitalAmount + netPremiumAmount;
|
244
|
-
}
|
245
|
-
|
246
|
-
// save updated bundle info
|
247
|
-
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
248
|
-
}
|
249
|
-
|
250
|
-
function updateBundleFees(
|
251
|
-
IInstance instance,
|
252
|
-
NftId bundleNftId,
|
253
|
-
Amount feeAmount
|
254
|
-
)
|
255
|
-
external
|
256
|
-
{
|
257
|
-
IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
|
258
|
-
bundleInfo.feeAmount = bundleInfo.feeAmount.add(feeAmount);
|
259
|
-
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
260
|
-
}
|
261
|
-
|
262
190
|
function lock(NftId bundleNftId)
|
263
191
|
external
|
264
192
|
virtual
|
265
193
|
{
|
266
|
-
(,, IInstance instance) =
|
194
|
+
(,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
267
195
|
|
268
196
|
// udpate bundle state
|
269
197
|
instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
|
@@ -280,7 +208,7 @@ contract BundleService is
|
|
280
208
|
external
|
281
209
|
virtual
|
282
210
|
{
|
283
|
-
(,, IInstance instance) =
|
211
|
+
(,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
284
212
|
|
285
213
|
// udpate bundle state
|
286
214
|
instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
|
@@ -316,37 +244,34 @@ contract BundleService is
|
|
316
244
|
}
|
317
245
|
|
318
246
|
|
319
|
-
function
|
247
|
+
function releaseCollateral(
|
320
248
|
IInstance instance,
|
249
|
+
NftId policyNftId,
|
321
250
|
NftId bundleNftId,
|
322
|
-
Amount
|
251
|
+
Amount collateralAmount
|
323
252
|
)
|
324
253
|
external
|
325
|
-
|
254
|
+
virtual
|
255
|
+
restricted()
|
326
256
|
{
|
327
|
-
|
328
|
-
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
329
|
-
|
330
|
-
// update capital and fees when premiums are involved
|
331
|
-
_updateBundleWithPremium(instance, bundleNftId, bundleInfo, premiumAmount);
|
332
|
-
|
333
|
-
// TODO add logging (?)
|
257
|
+
instance.getInstanceStore().decreaseLocked(bundleNftId, collateralAmount);
|
334
258
|
}
|
335
259
|
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
260
|
+
/// @dev unlinks policy from bundle
|
261
|
+
function unlinkPolicy(
|
262
|
+
IInstance instance,
|
263
|
+
NftId policyNftId
|
340
264
|
)
|
341
265
|
external
|
342
|
-
|
266
|
+
virtual
|
267
|
+
restricted
|
343
268
|
{
|
344
|
-
|
345
|
-
|
269
|
+
// ensure policy is closeable
|
270
|
+
if (!instance.getInstanceReader().policyIsCloseable(policyNftId)) {
|
271
|
+
revert ErrorBundleServicePolicyNotCloseable(policyNftId);
|
272
|
+
}
|
346
273
|
|
347
|
-
|
348
|
-
bundleInfo.lockedAmount = bundleInfo.lockedAmount - collateralAmount;
|
349
|
-
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
274
|
+
instance.getBundleManager().unlinkPolicy(policyNftId);
|
350
275
|
}
|
351
276
|
|
352
277
|
/// @dev links policy to bundle
|
@@ -365,20 +290,7 @@ contract BundleService is
|
|
365
290
|
bundleManager.linkPolicy(policyNftId);
|
366
291
|
}
|
367
292
|
|
368
|
-
|
369
|
-
|
370
|
-
IInstance instance,
|
371
|
-
NftId policyNftId
|
372
|
-
)
|
373
|
-
external
|
374
|
-
virtual
|
375
|
-
restricted
|
376
|
-
{
|
377
|
-
// ensure policy is closeable
|
378
|
-
if (!instance.getInstanceReader().policyIsCloseable(policyNftId)) {
|
379
|
-
revert ErrorBundleServicePolicyNotCloseable(policyNftId);
|
380
|
-
}
|
381
|
-
|
382
|
-
instance.getBundleManager().unlinkPolicy(policyNftId);
|
293
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
294
|
+
return BUNDLE();
|
383
295
|
}
|
384
296
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
5
|
import {NftId} from "../type/NftId.sol";
|
@@ -80,13 +80,13 @@ interface IBundleService is IService {
|
|
80
80
|
/// the premium (minus bundle fee) is added to the bundle capital
|
81
81
|
/// may only be called by pool service
|
82
82
|
function lockCollateral(
|
83
|
-
IInstance
|
83
|
+
IInstance instance,
|
84
84
|
NftId policyNftId,
|
85
85
|
NftId bundleNftId,
|
86
|
-
Amount collateralAmount
|
87
|
-
Amount premiumAmount // premium after pool fee
|
86
|
+
Amount collateralAmount
|
88
87
|
) external;
|
89
88
|
|
89
|
+
|
90
90
|
/// @dev releases the specified collateral in the bundle
|
91
91
|
/// may only be called by pool service
|
92
92
|
function releaseCollateral(
|
@@ -103,16 +103,4 @@ interface IBundleService is IService {
|
|
103
103
|
IInstance instance,
|
104
104
|
NftId policyNftId
|
105
105
|
) external;
|
106
|
-
|
107
|
-
/// @dev updates the bundle's fees of with the provided fee amount
|
108
|
-
function updateBundleFees(
|
109
|
-
IInstance instance,
|
110
|
-
NftId bundleNftId,
|
111
|
-
Amount feeAmount
|
112
|
-
) external;
|
113
|
-
|
114
|
-
function increaseBalance(
|
115
|
-
IInstance instance,
|
116
|
-
NftId bundleNftId,
|
117
|
-
Amount amount) external;
|
118
106
|
}
|
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
5
|
import {Fee} from "../type/Fee.sol";
|
6
|
-
import {
|
6
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
7
7
|
import {IComponents} from "../instance/module/IComponents.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
9
|
import {RoleId} from "../type/RoleId.sol";
|
@@ -12,7 +12,7 @@ import {UFixed} from "../type/UFixed.sol";
|
|
12
12
|
|
13
13
|
/// @dev pool components hold and manage the collateral to cover active policies
|
14
14
|
/// pools come in different flavors
|
15
|
-
interface IPoolComponent is
|
15
|
+
interface IPoolComponent is IInstanceLinkedComponent {
|
16
16
|
|
17
17
|
error ErrorPoolNotBundleOwner(NftId bundleNftId, address caller);
|
18
18
|
error ErrorPoolNotPoolService(address caller);
|
@@ -106,9 +106,7 @@ interface IPoolComponent is IComponent {
|
|
106
106
|
view
|
107
107
|
returns (bool isMatching);
|
108
108
|
|
109
|
-
/// @dev returns pool specific infos for this pool
|
110
|
-
|
111
|
-
/// when not registered the function returns the info from the component contract
|
112
|
-
function getPoolInfo() external view returns (IComponents.PoolInfo memory info);
|
109
|
+
/// @dev returns initial pool specific infos for this pool
|
110
|
+
function getInitialPoolInfo() external view returns (IComponents.PoolInfo memory info);
|
113
111
|
|
114
112
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
5
|
import {Fee} from "../type/Fee.sol";
|
@@ -7,11 +7,13 @@ import {NftId} from "../type/NftId.sol";
|
|
7
7
|
import {PayoutId} from "../type/PayoutId.sol";
|
8
8
|
import {IBundle} from "../instance/module/IBundle.sol";
|
9
9
|
import {IInstance} from "../instance/IInstance.sol";
|
10
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
10
11
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
12
|
import {IService} from "../shared/IService.sol";
|
12
13
|
import {RoleId} from "../type/RoleId.sol";
|
13
14
|
import {Seconds} from "../type/Seconds.sol";
|
14
15
|
import {StateId} from "../type/StateId.sol";
|
16
|
+
import {UFixed} from "../type/UFixed.sol";
|
15
17
|
|
16
18
|
interface IPoolService is IService {
|
17
19
|
|
@@ -22,12 +24,8 @@ interface IPoolService is IService {
|
|
22
24
|
event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
23
25
|
|
24
26
|
error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
|
25
|
-
error ErrorPoolServiceBundlePoolMismatch(NftId bundlePoolNftId, NftId productPoolNftId);
|
26
27
|
error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
|
27
28
|
|
28
|
-
/// @dev registers a new pool with the registry service
|
29
|
-
function register(address poolAddress) external returns(NftId);
|
30
|
-
|
31
29
|
/// @dev defines the required role for bundle owners for the calling pool
|
32
30
|
/// default implementation returns PUBLIC ROLE
|
33
31
|
function setBundleOwnerRole(RoleId bundleOwnerRole) external;
|
@@ -50,17 +48,24 @@ interface IPoolService is IService {
|
|
50
48
|
/// may only be called by the policy service for unlocked pool components
|
51
49
|
function lockCollateral(
|
52
50
|
IInstance instance,
|
51
|
+
address token,
|
53
52
|
NftId productNftId,
|
54
53
|
NftId applicationNftId,
|
55
|
-
|
56
|
-
Amount
|
57
|
-
)
|
54
|
+
NftId bundleNftId,
|
55
|
+
Amount sumInsuredAmount // premium amount after product and distribution fees
|
56
|
+
)
|
57
|
+
external
|
58
|
+
returns (
|
59
|
+
Amount localCollateralAmount,
|
60
|
+
Amount totalCollateralAmount
|
61
|
+
);
|
58
62
|
|
59
63
|
|
60
64
|
/// @dev releases the remaining collateral linked to the specified policy
|
61
65
|
/// may only be called by the policy service for unlocked pool components
|
62
66
|
function releaseCollateral(
|
63
67
|
IInstance instance,
|
68
|
+
address token,
|
64
69
|
NftId policyNftId,
|
65
70
|
IPolicy.PolicyInfo memory policyInfo
|
66
71
|
) external;
|
@@ -71,6 +76,7 @@ interface IPoolService is IService {
|
|
71
76
|
/// may only be called by the claim service for unlocked pool components
|
72
77
|
function reduceCollateral(
|
73
78
|
IInstance instance,
|
79
|
+
address token,
|
74
80
|
NftId policyNftId,
|
75
81
|
IPolicy.PolicyInfo memory policyInfo,
|
76
82
|
Amount payoutAmount
|
@@ -98,8 +104,9 @@ interface IPoolService is IService {
|
|
98
104
|
/// may only be called by registered and unlocked pool components
|
99
105
|
function closeBundle(NftId bundleNftId) external;
|
100
106
|
|
107
|
+
|
101
108
|
/// @dev processes the sale of a bundle and track the pool fee and bundle fee amounts
|
102
|
-
function processSale(NftId bundleNftId, IPolicy.Premium memory premium
|
109
|
+
function processSale(NftId bundleNftId, IPolicy.Premium memory premium) external;
|
103
110
|
|
104
111
|
/// @dev increase stakes for bundle
|
105
112
|
/// staking fees will be deducted by the pool service from the staking amount
|
@@ -111,4 +118,33 @@ interface IPoolService is IService {
|
|
111
118
|
/// performance fees will be deducted by the pool service from the staking amount
|
112
119
|
/// may only be called by registered and unlocked pool components
|
113
120
|
// function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
|
121
|
+
|
122
|
+
|
123
|
+
/// @dev calulate required collateral for the provided parameters
|
124
|
+
function calculateRequiredCollateral(
|
125
|
+
InstanceReader instanceReader,
|
126
|
+
NftId productNftId,
|
127
|
+
Amount sumInsuredAmount
|
128
|
+
)
|
129
|
+
external
|
130
|
+
view
|
131
|
+
returns(
|
132
|
+
Amount localCollateralAmount,
|
133
|
+
Amount totalCollateralAmount
|
134
|
+
);
|
135
|
+
|
136
|
+
|
137
|
+
/// @dev calulate required collateral for the provided parameters
|
138
|
+
function calculateRequiredCollateral(
|
139
|
+
UFixed collateralizationLevel,
|
140
|
+
UFixed retentionLevel,
|
141
|
+
Amount sumInsuredAmount
|
142
|
+
)
|
143
|
+
external
|
144
|
+
pure
|
145
|
+
returns(
|
146
|
+
Amount localCollateralAmount,
|
147
|
+
Amount totalCollateralAmount
|
148
|
+
);
|
149
|
+
|
114
150
|
}
|