@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,11 +1,10 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Pool} from "./Pool.sol";
|
5
5
|
import {IRegistry} from "../registry/IRegistry.sol";
|
6
6
|
import {IInstance} from "../instance/IInstance.sol";
|
7
7
|
import {IBundle} from "../instance/module/IBundle.sol";
|
8
|
-
import {TokenHandler} from "../instance/module/ITreasury.sol";
|
9
8
|
import {IComponents} from "../instance/module/IComponents.sol";
|
10
9
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
10
|
|
@@ -15,38 +14,49 @@ import {INftOwnable} from "../shared/INftOwnable.sol";
|
|
15
14
|
|
16
15
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
17
16
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
18
|
-
import {NftId, NftIdLib
|
19
|
-
import {ObjectType, POOL, BUNDLE} from "../type/ObjectType.sol";
|
17
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
18
|
+
import {ObjectType, POOL, BUNDLE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
20
19
|
import {PUBLIC_ROLE, POOL_OWNER_ROLE, POLICY_SERVICE_ROLE, RoleId} from "../type/RoleId.sol";
|
21
20
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
22
21
|
import {Version, VersionLib} from "../type/Version.sol";
|
23
22
|
import {KEEP_STATE, StateId} from "../type/StateId.sol";
|
24
23
|
import {Seconds} from "../type/Seconds.sol";
|
25
24
|
import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
25
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
26
|
+
import {UFixed} from "../type/UFixed.sol";
|
26
27
|
import {Version, VersionLib} from "../type/Version.sol";
|
27
28
|
|
28
29
|
import {IService} from "../shared/IService.sol";
|
29
30
|
import {Service} from "../shared/Service.sol";
|
30
31
|
import {BundleManager} from "../instance/BundleManager.sol";
|
31
|
-
import {
|
32
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
32
33
|
import {IBundleService} from "./IBundleService.sol";
|
34
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
35
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
33
36
|
import {IPoolService} from "./IPoolService.sol";
|
34
37
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
38
|
+
import {IStaking} from "../staking/IStaking.sol";
|
35
39
|
import {InstanceService} from "../instance/InstanceService.sol";
|
36
40
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
41
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
37
42
|
import {IComponent} from "../shared/IComponent.sol";
|
38
43
|
import {IPoolComponent} from "./IPoolComponent.sol";
|
39
44
|
|
40
45
|
string constant POOL_SERVICE_NAME = "PoolService";
|
41
46
|
|
42
47
|
contract PoolService is
|
43
|
-
|
48
|
+
ComponentVerifyingService,
|
44
49
|
IPoolService
|
45
50
|
{
|
46
51
|
using NftIdLib for NftId;
|
47
52
|
using AmountLib for Amount;
|
48
53
|
|
49
54
|
IBundleService internal _bundleService;
|
55
|
+
IComponentService internal _componentService;
|
56
|
+
IInstanceService private _instanceService;
|
57
|
+
IRegistryService private _registryService;
|
58
|
+
|
59
|
+
IStaking private _staking;
|
50
60
|
|
51
61
|
function _initialize(
|
52
62
|
address owner,
|
@@ -63,57 +73,15 @@ contract PoolService is
|
|
63
73
|
) = abi.decode(data, (address, address, address));
|
64
74
|
|
65
75
|
initializeService(registryAddress, authority, owner);
|
66
|
-
_bundleService = IBundleService(getRegistry().getServiceAddress(BUNDLE(), getVersion().toMajorPart()));
|
67
|
-
registerInterface(type(IPoolService).interfaceId);
|
68
|
-
}
|
69
76
|
|
70
|
-
|
71
|
-
|
72
|
-
|
77
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
78
|
+
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
79
|
+
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
80
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
73
81
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
{
|
78
|
-
(
|
79
|
-
IComponent component,
|
80
|
-
address owner,
|
81
|
-
IInstance instance,
|
82
|
-
NftId instanceNftId
|
83
|
-
) = _checkComponentForRegistration(
|
84
|
-
poolAddress,
|
85
|
-
POOL(),
|
86
|
-
POOL_OWNER_ROLE());
|
87
|
-
|
88
|
-
IPoolComponent pool = IPoolComponent(poolAddress);
|
89
|
-
IRegistry.ObjectInfo memory registryInfo = getRegistryService().registerPool(pool, owner);
|
90
|
-
pool.linkToRegisteredNftId();
|
91
|
-
poolNftId = registryInfo.nftId;
|
92
|
-
|
93
|
-
// amend component info with pool specific token handler
|
94
|
-
IComponents.ComponentInfo memory componentInfo = pool.getComponentInfo();
|
95
|
-
componentInfo.tokenHandler = new TokenHandler(address(componentInfo.token));
|
96
|
-
|
97
|
-
// save amended component info with instance
|
98
|
-
instance.getInstanceStore().createPoolSetup(poolNftId, componentInfo);
|
99
|
-
|
100
|
-
bytes4[][] memory selectors = new bytes4[][](2);
|
101
|
-
selectors[0] = new bytes4[](1);
|
102
|
-
selectors[1] = new bytes4[](1);
|
103
|
-
|
104
|
-
selectors[0][0] = IPoolComponent.setFees.selector;
|
105
|
-
selectors[1][0] = IPoolComponent.verifyApplication.selector;
|
106
|
-
|
107
|
-
RoleId[] memory roles = new RoleId[](2);
|
108
|
-
roles[0] = POOL_OWNER_ROLE();
|
109
|
-
roles[1] = POLICY_SERVICE_ROLE();
|
110
|
-
|
111
|
-
getInstanceService().createGifTarget(
|
112
|
-
instanceNftId,
|
113
|
-
poolAddress,
|
114
|
-
pool.getName(),
|
115
|
-
selectors,
|
116
|
-
roles);
|
82
|
+
_staking = IStaking(getRegistry().getStakingAddress());
|
83
|
+
|
84
|
+
registerInterface(type(IPoolService).interfaceId);
|
117
85
|
}
|
118
86
|
|
119
87
|
|
@@ -122,7 +90,7 @@ contract PoolService is
|
|
122
90
|
virtual
|
123
91
|
{
|
124
92
|
/*
|
125
|
-
(NftId poolNftId,, IInstance instance) =
|
93
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
126
94
|
InstanceReader instanceReader = instance.getInstanceReader();
|
127
95
|
|
128
96
|
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
@@ -130,8 +98,7 @@ contract PoolService is
|
|
130
98
|
Amount previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
|
131
99
|
|
132
100
|
poolInfo.maxCapitalAmount = maxCapitalAmount;
|
133
|
-
|
134
|
-
instance.getInstanceStore().updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
|
101
|
+
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
135
102
|
|
136
103
|
emit LogPoolServiceMaxCapitalAmountUpdated(poolNftId, previousMaxCapitalAmount, maxCapitalAmount);
|
137
104
|
*/
|
@@ -141,7 +108,7 @@ contract PoolService is
|
|
141
108
|
external
|
142
109
|
virtual
|
143
110
|
{
|
144
|
-
(NftId poolNftId,, IInstance instance) =
|
111
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
145
112
|
InstanceReader instanceReader = instance.getInstanceReader();
|
146
113
|
|
147
114
|
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
@@ -153,8 +120,7 @@ contract PoolService is
|
|
153
120
|
}
|
154
121
|
|
155
122
|
poolInfo.bundleOwnerRole = bundleOwnerRole;
|
156
|
-
|
157
|
-
instance.getInstanceStore().updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
|
123
|
+
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
158
124
|
|
159
125
|
emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
|
160
126
|
}
|
@@ -168,23 +134,20 @@ contract PoolService is
|
|
168
134
|
external
|
169
135
|
virtual
|
170
136
|
{
|
171
|
-
(NftId poolNftId,, IInstance instance) =
|
172
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
173
|
-
|
174
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
175
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
137
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
176
138
|
|
139
|
+
IComponents.PoolInfo memory poolInfo = instance.getInstanceReader().getPoolInfo(poolNftId);
|
177
140
|
poolInfo.poolFee = poolFee;
|
178
141
|
poolInfo.stakingFee = stakingFee;
|
179
142
|
poolInfo.performanceFee = performanceFee;
|
180
|
-
|
181
|
-
instance.getInstanceStore().
|
143
|
+
|
144
|
+
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
182
145
|
|
183
146
|
// TODO add logging
|
184
147
|
}
|
185
148
|
|
186
149
|
function createBundle(
|
187
|
-
address
|
150
|
+
address bundleOwner, // initial bundle owner
|
188
151
|
Fee memory fee, // fees deducted from premium that go to bundle owner
|
189
152
|
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
190
153
|
Seconds lifetime, // initial duration for which new policies are covered
|
@@ -194,34 +157,57 @@ contract PoolService is
|
|
194
157
|
virtual
|
195
158
|
returns(NftId bundleNftId)
|
196
159
|
{
|
197
|
-
(NftId poolNftId,, IInstance instance) =
|
160
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
198
161
|
InstanceReader instanceReader = instance.getInstanceReader();
|
199
162
|
|
200
|
-
|
201
|
-
|
202
|
-
|
163
|
+
(
|
164
|
+
Amount stakingFeeAmount,
|
165
|
+
Amount stakingNetAmount
|
166
|
+
) = FeeLib.calculateFee(
|
167
|
+
_getStakingFee(instanceReader, poolNftId),
|
168
|
+
stakingAmount);
|
203
169
|
|
204
170
|
bundleNftId = _bundleService.create(
|
205
171
|
instance,
|
206
172
|
poolNftId,
|
207
|
-
|
173
|
+
bundleOwner,
|
208
174
|
fee,
|
209
175
|
stakingNetAmount,
|
210
176
|
lifetime,
|
211
177
|
filter);
|
212
178
|
|
213
|
-
//
|
214
|
-
|
179
|
+
// pool book keeping
|
180
|
+
_componentService.increasePoolBalance(
|
181
|
+
instance.getInstanceStore(),
|
182
|
+
poolNftId,
|
183
|
+
stakingAmount,
|
184
|
+
stakingFeeAmount);
|
185
|
+
|
186
|
+
// pool bookkeeping and collect tokens from bundle owner
|
187
|
+
_collectStakingAmount(
|
188
|
+
instanceReader,
|
189
|
+
poolNftId,
|
190
|
+
bundleOwner,
|
191
|
+
stakingAmount);
|
215
192
|
|
216
193
|
emit LogPoolServiceBundleCreated(instance.getNftId(), poolNftId, bundleNftId);
|
217
194
|
}
|
218
195
|
|
196
|
+
function _getStakingFee(InstanceReader instanceReader, NftId poolNftId)
|
197
|
+
internal
|
198
|
+
virtual
|
199
|
+
view
|
200
|
+
returns (Fee memory stakingFee)
|
201
|
+
{
|
202
|
+
NftId productNftId = instanceReader.getPoolInfo(poolNftId).productNftId;
|
203
|
+
return instanceReader.getPoolInfo(productNftId).stakingFee;
|
204
|
+
}
|
219
205
|
|
220
206
|
function closeBundle(NftId bundleNftId)
|
221
207
|
external
|
222
208
|
virtual
|
223
209
|
{
|
224
|
-
(NftId poolNftId,, IInstance instance) =
|
210
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
225
211
|
|
226
212
|
// TODO book keeping for pool collateral released outside of retention level
|
227
213
|
|
@@ -233,14 +219,14 @@ contract PoolService is
|
|
233
219
|
emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
|
234
220
|
}
|
235
221
|
|
222
|
+
|
236
223
|
function processSale(
|
237
224
|
NftId bundleNftId,
|
238
|
-
IPolicy.Premium memory premium
|
239
|
-
Amount actualAmountTransferred
|
225
|
+
IPolicy.Premium memory premium
|
240
226
|
)
|
241
227
|
external
|
242
228
|
virtual
|
243
|
-
restricted
|
229
|
+
restricted()
|
244
230
|
{
|
245
231
|
IRegistry registry = getRegistry();
|
246
232
|
IRegistry.ObjectInfo memory bundleObjectInfo = registry.getObjectInfo(bundleNftId);
|
@@ -250,90 +236,90 @@ contract PoolService is
|
|
250
236
|
|
251
237
|
Amount poolFeeAmount = AmountLib.toAmount(premium.poolFeeFixAmount + premium.poolFeeVarAmount);
|
252
238
|
Amount bundleFeeAmount = AmountLib.toAmount(premium.bundleFeeFixAmount + premium.bundleFeeVarAmount);
|
253
|
-
Amount
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
}
|
239
|
+
Amount bundleNetAmount = AmountLib.toAmount(premium.netPremiumAmount);
|
240
|
+
|
241
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
242
|
+
_componentService.increasePoolBalance(
|
243
|
+
instanceStore,
|
244
|
+
poolObjectInfo.nftId,
|
245
|
+
bundleNetAmount + bundleFeeAmount,
|
246
|
+
poolFeeAmount);
|
247
|
+
|
248
|
+
_componentService.increaseBundleBalance(
|
249
|
+
instanceStore,
|
250
|
+
bundleObjectInfo.nftId,
|
251
|
+
bundleNetAmount,
|
252
|
+
bundleFeeAmount);
|
268
253
|
}
|
269
254
|
|
255
|
+
|
270
256
|
function lockCollateral(
|
271
257
|
IInstance instance,
|
258
|
+
address token,
|
272
259
|
NftId productNftId,
|
273
260
|
NftId applicationNftId,
|
274
|
-
|
275
|
-
Amount
|
261
|
+
NftId bundleNftId,
|
262
|
+
Amount sumInsuredAmount // premium amount after product and distribution fees
|
276
263
|
)
|
277
264
|
external
|
278
265
|
virtual
|
279
|
-
restricted
|
266
|
+
restricted()
|
267
|
+
returns (
|
268
|
+
Amount localCollateralAmount,
|
269
|
+
Amount totalCollateralAmount
|
270
|
+
)
|
280
271
|
{
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
}
|
291
|
-
|
292
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
293
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
294
|
-
|
295
|
-
// TODO add correct required collateral calculation (collateralization level mibht be != 1, retention level might be < 1)
|
296
|
-
Amount collateralAmount = applicationInfo.sumInsuredAmount;
|
297
|
-
|
298
|
-
// TODO add correct net premium calculation (pool fee might be > 0)
|
299
|
-
Amount premiumAfterPoolFeeAmount = premiumAmount;
|
300
|
-
|
301
|
-
// lock collateral amount from involvedd bundle
|
272
|
+
(
|
273
|
+
localCollateralAmount,
|
274
|
+
totalCollateralAmount
|
275
|
+
) = calculateRequiredCollateral(
|
276
|
+
instance.getInstanceReader(),
|
277
|
+
productNftId,
|
278
|
+
sumInsuredAmount);
|
279
|
+
|
280
|
+
// lock collateral amount from involved bundle
|
302
281
|
_bundleService.lockCollateral(
|
303
282
|
instance,
|
304
283
|
applicationNftId,
|
305
284
|
bundleNftId,
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
285
|
+
localCollateralAmount);
|
286
|
+
|
287
|
+
// update value locked with staking service
|
288
|
+
_staking.increaseTotalValueLocked(
|
289
|
+
instance.getNftId(),
|
290
|
+
token,
|
291
|
+
totalCollateralAmount);
|
292
|
+
|
293
|
+
// hierarhical riskpool setup
|
294
|
+
// TODO loop in with pool component to guarantee availability of external capital
|
295
|
+
if(totalCollateralAmount > localCollateralAmount) {
|
296
|
+
|
318
297
|
}
|
319
298
|
}
|
320
299
|
|
321
300
|
|
322
301
|
function reduceCollateral(
|
323
302
|
IInstance instance,
|
303
|
+
address token,
|
324
304
|
NftId policyNftId,
|
325
305
|
IPolicy.PolicyInfo memory policyInfo,
|
326
306
|
Amount payoutAmount
|
327
307
|
)
|
328
308
|
external
|
329
309
|
virtual
|
330
|
-
restricted
|
310
|
+
restricted()
|
331
311
|
{
|
332
312
|
_bundleService.releaseCollateral(
|
333
313
|
instance,
|
334
314
|
policyNftId,
|
335
315
|
policyInfo.bundleNftId,
|
336
316
|
payoutAmount);
|
317
|
+
|
318
|
+
// update value locked with staking service
|
319
|
+
_staking.decreaseTotalValueLocked(
|
320
|
+
instance.getNftId(),
|
321
|
+
token,
|
322
|
+
payoutAmount);
|
337
323
|
}
|
338
324
|
|
339
325
|
|
@@ -341,27 +327,84 @@ contract PoolService is
|
|
341
327
|
/// may only be called by the policy service for unlocked pool components
|
342
328
|
function releaseCollateral(
|
343
329
|
IInstance instance,
|
330
|
+
address token,
|
344
331
|
NftId policyNftId,
|
345
332
|
IPolicy.PolicyInfo memory policyInfo
|
346
333
|
)
|
347
334
|
external
|
348
335
|
virtual
|
349
|
-
restricted
|
336
|
+
restricted()
|
350
337
|
{
|
338
|
+
Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
|
339
|
+
|
351
340
|
_bundleService.releaseCollateral(
|
352
341
|
instance,
|
353
342
|
policyNftId,
|
354
343
|
policyInfo.bundleNftId,
|
355
|
-
|
344
|
+
remainingCollateralAmount);
|
356
345
|
|
357
346
|
_bundleService.unlinkPolicy(
|
358
347
|
instance,
|
359
348
|
policyNftId);
|
349
|
+
|
350
|
+
// update value locked with staking service
|
351
|
+
_staking.decreaseTotalValueLocked(
|
352
|
+
instance.getNftId(),
|
353
|
+
token,
|
354
|
+
remainingCollateralAmount);
|
355
|
+
}
|
356
|
+
|
357
|
+
|
358
|
+
function calculateRequiredCollateral(
|
359
|
+
InstanceReader instanceReader,
|
360
|
+
NftId productNftId,
|
361
|
+
Amount sumInsuredAmount
|
362
|
+
)
|
363
|
+
public
|
364
|
+
view
|
365
|
+
returns(
|
366
|
+
Amount localCollateralAmount,
|
367
|
+
Amount totalCollateralAmount
|
368
|
+
)
|
369
|
+
{
|
370
|
+
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
371
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
372
|
+
|
373
|
+
(
|
374
|
+
localCollateralAmount,
|
375
|
+
totalCollateralAmount
|
376
|
+
) = calculateRequiredCollateral(
|
377
|
+
poolInfo.collateralizationLevel,
|
378
|
+
poolInfo.retentionLevel,
|
379
|
+
sumInsuredAmount);
|
380
|
+
}
|
381
|
+
|
382
|
+
|
383
|
+
function calculateRequiredCollateral(
|
384
|
+
UFixed collateralizationLevel,
|
385
|
+
UFixed retentionLevel,
|
386
|
+
Amount sumInsuredAmount
|
387
|
+
)
|
388
|
+
public
|
389
|
+
pure
|
390
|
+
returns(
|
391
|
+
Amount localCollateralAmount,
|
392
|
+
Amount totalCollateralAmount
|
393
|
+
)
|
394
|
+
{
|
395
|
+
// TODO define if only applies to local collateral
|
396
|
+
// TODO add minimalistic implementation
|
397
|
+
|
398
|
+
// assumptions
|
399
|
+
// - collateralizationLevel == 1.0
|
400
|
+
// - retentionLevel == 1.0
|
401
|
+
localCollateralAmount = sumInsuredAmount;
|
402
|
+
totalCollateralAmount = localCollateralAmount;
|
360
403
|
}
|
361
404
|
|
362
405
|
|
363
406
|
function _processStakingFees(
|
364
|
-
|
407
|
+
Fee memory stakingFee,
|
365
408
|
Amount stakingAmount
|
366
409
|
)
|
367
410
|
internal
|
@@ -370,7 +413,6 @@ contract PoolService is
|
|
370
413
|
stakingNetAmount = stakingAmount;
|
371
414
|
|
372
415
|
// check if any staking fees apply
|
373
|
-
Fee memory stakingFee = abi.decode(componentInfo.data, (IComponents.PoolInfo)).stakingFee;
|
374
416
|
if (FeeLib.gtz(stakingFee)) {
|
375
417
|
(Amount feeAmount, Amount netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount);
|
376
418
|
stakingNetAmount = netAmount;
|
@@ -382,23 +424,29 @@ contract PoolService is
|
|
382
424
|
|
383
425
|
// TODO create (I)TreasuryService that deals with all gif related token transfers
|
384
426
|
/// @dev transfers the specified amount from the bundle owner to the pool's wallet
|
385
|
-
function
|
386
|
-
|
427
|
+
function _collectStakingAmount(
|
428
|
+
InstanceReader instanceReader,
|
429
|
+
NftId poolNftId,
|
387
430
|
address bundleOwner,
|
388
|
-
Amount
|
431
|
+
Amount amount
|
389
432
|
)
|
390
433
|
internal
|
391
434
|
{
|
435
|
+
|
436
|
+
// collecting investor token
|
437
|
+
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
392
438
|
TokenHandler tokenHandler = componentInfo.tokenHandler;
|
393
439
|
address poolWallet = componentInfo.wallet;
|
394
440
|
|
395
|
-
if(
|
441
|
+
if(amount.gtz()) {
|
396
442
|
tokenHandler.transfer(
|
397
443
|
bundleOwner,
|
398
444
|
poolWallet,
|
399
|
-
|
400
|
-
);
|
445
|
+
amount);
|
401
446
|
}
|
402
447
|
}
|
403
448
|
|
449
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
450
|
+
return POOL();
|
451
|
+
}
|
404
452
|
}
|