@etherisc/gif-next 0.0.2-96b5b72-170 → 0.0.2-97aac30-275
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +193 -164
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +114 -321
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +120 -82
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +72 -108
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +22 -48
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +25 -6
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +56 -22
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +53 -18
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +132 -28
- 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 +133 -59
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +110 -32
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1103 -308
- 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/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 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- 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 +662 -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 +997 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +69 -252
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +105 -55
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +8 -53
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +134 -86
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +121 -133
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +239 -92
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +170 -368
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +98 -72
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +69 -153
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +105 -31
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +95 -203
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +118 -56
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +7 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +7 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +81 -25
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +230 -107
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -55
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +164 -299
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +106 -92
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +139 -160
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +130 -40
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +334 -146
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +29 -214
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +88 -34
- 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 +163 -61
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +256 -65
- 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 +378 -67
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +272 -68
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +87 -35
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +799 -127
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -138
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +184 -11
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +908 -49
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +526 -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/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +172 -4
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +80 -22
- 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 +7 -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 +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +176 -24
- 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 +13 -7
- 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 +64 -16
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +21 -7
- 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 +7 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1103 -172
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +497 -49
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1247 -56
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +167 -30
- 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 +605 -78
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +122 -28
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -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 +15 -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 +2 -2
- 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 +2 -2
- 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/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- 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 +27 -51
- package/contracts/distribution/DistributionService.sol +55 -106
- package/contracts/distribution/DistributionServiceManager.sol +9 -18
- package/contracts/distribution/IDistributionComponent.sol +3 -8
- package/contracts/distribution/IDistributionService.sol +2 -8
- package/contracts/instance/IInstance.sol +12 -7
- package/contracts/instance/IInstanceService.sol +13 -5
- package/contracts/instance/Instance.sol +30 -23
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +210 -141
- package/contracts/instance/InstanceReader.sol +64 -42
- package/contracts/instance/InstanceService.sol +141 -87
- package/contracts/instance/InstanceServiceManager.sol +10 -20
- package/contracts/instance/InstanceStore.sol +125 -55
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/module/IAccess.sol +2 -10
- 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 +277 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BundleService.sol +63 -149
- package/contracts/pool/BundleServiceManager.sol +9 -18
- package/contracts/pool/IBundleService.sol +4 -16
- package/contracts/pool/IPoolComponent.sol +2 -4
- package/contracts/pool/IPoolService.sol +45 -9
- package/contracts/pool/Pool.sol +37 -40
- package/contracts/pool/PoolService.sol +195 -145
- package/contracts/pool/PoolServiceManager.sol +9 -18
- package/contracts/product/ApplicationService.sol +111 -43
- package/contracts/product/ApplicationServiceManager.sol +9 -6
- package/contracts/product/ClaimService.sol +21 -21
- package/contracts/product/ClaimServiceManager.sol +9 -6
- 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 +5 -4
- package/contracts/product/IProductService.sol +1 -8
- package/contracts/product/PolicyService.sol +226 -127
- package/contracts/product/PolicyServiceManager.sol +9 -21
- package/contracts/product/PricingService.sol +74 -48
- package/contracts/product/PricingServiceManager.sol +9 -18
- package/contracts/product/Product.sol +45 -47
- package/contracts/product/ProductService.sol +26 -112
- package/contracts/product/ProductServiceManager.sol +9 -21
- package/contracts/registry/ChainNft.sol +1 -0
- package/contracts/registry/IRegistry.sol +38 -24
- package/contracts/registry/IRegistryService.sol +31 -31
- package/contracts/registry/Registry.sol +176 -105
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +44 -82
- package/contracts/registry/RegistryServiceManager.sol +21 -23
- package/contracts/registry/ReleaseManager.sol +450 -210
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/AccessManagerCustom.sol +736 -0
- package/contracts/shared/AccessManagerExtended.sol +470 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +153 -49
- package/contracts/shared/ComponentService.sol +561 -93
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/shared/IComponent.sol +20 -8
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +5 -11
- 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 +1 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +51 -178
- 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 +2 -13
- package/contracts/shared/PolicyHolder.sol +21 -13
- package/contracts/shared/ProxyManager.sol +31 -1
- package/contracts/shared/Registerable.sol +2 -2
- package/contracts/shared/Service.sol +7 -2
- package/contracts/staking/IStaking.sol +146 -8
- package/contracts/staking/IStakingService.sol +83 -39
- package/contracts/staking/StakeManagerLib.sol +179 -0
- package/contracts/staking/Staking.sol +503 -17
- package/contracts/staking/StakingManager.sol +22 -14
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +246 -44
- package/contracts/staking/StakingServiceManager.sol +8 -4
- package/contracts/staking/StakingStore.sol +572 -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 +12 -10
- 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 +18 -4
- package/contracts/type/Seconds.sol +27 -0
- package/contracts/type/StateId.sol +27 -2
- package/contracts/type/Timestamp.sol +6 -2
- package/contracts/type/Version.sol +1 -1
- package/package.json +4 -3
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- 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/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/registry/RegistryAccessManager.sol +0 -207
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
@@ -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,
|
@@ -56,14 +66,20 @@ contract PoolService is
|
|
56
66
|
initializer
|
57
67
|
virtual override
|
58
68
|
{
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
69
|
+
(
|
70
|
+
address registryAddress,,
|
71
|
+
//address managerAddress
|
72
|
+
address authority
|
73
|
+
) = abi.decode(data, (address, address, address));
|
74
|
+
|
75
|
+
initializeService(registryAddress, authority, owner);
|
76
|
+
|
77
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
78
|
+
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
79
|
+
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
80
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
65
81
|
|
66
|
-
|
82
|
+
_staking = IStaking(getRegistry().getStakingAddress());
|
67
83
|
|
68
84
|
registerInterface(type(IPoolService).interfaceId);
|
69
85
|
}
|
@@ -72,57 +88,13 @@ contract PoolService is
|
|
72
88
|
return POOL();
|
73
89
|
}
|
74
90
|
|
75
|
-
function register(address poolAddress)
|
76
|
-
external
|
77
|
-
returns(NftId poolNftId)
|
78
|
-
{
|
79
|
-
(
|
80
|
-
IComponent component,
|
81
|
-
address owner,
|
82
|
-
IInstance instance,
|
83
|
-
NftId instanceNftId
|
84
|
-
) = _checkComponentForRegistration(
|
85
|
-
poolAddress,
|
86
|
-
POOL(),
|
87
|
-
POOL_OWNER_ROLE());
|
88
|
-
|
89
|
-
IPoolComponent pool = IPoolComponent(poolAddress);
|
90
|
-
IRegistry.ObjectInfo memory registryInfo = getRegistryService().registerPool(pool, owner);
|
91
|
-
pool.linkToRegisteredNftId();
|
92
|
-
poolNftId = registryInfo.nftId;
|
93
|
-
|
94
|
-
// amend component info with pool specific token handler
|
95
|
-
IComponents.ComponentInfo memory componentInfo = pool.getComponentInfo();
|
96
|
-
componentInfo.tokenHandler = new TokenHandler(address(componentInfo.token));
|
97
|
-
|
98
|
-
// save amended component info with instance
|
99
|
-
instance.getInstanceStore().createPoolSetup(poolNftId, componentInfo);
|
100
|
-
|
101
|
-
bytes4[][] memory selectors = new bytes4[][](2);
|
102
|
-
selectors[0] = new bytes4[](1);
|
103
|
-
selectors[1] = new bytes4[](1);
|
104
|
-
|
105
|
-
selectors[0][0] = IPoolComponent.setFees.selector;
|
106
|
-
selectors[1][0] = IPoolComponent.verifyApplication.selector;
|
107
|
-
|
108
|
-
RoleId[] memory roles = new RoleId[](2);
|
109
|
-
roles[0] = POOL_OWNER_ROLE();
|
110
|
-
roles[1] = POLICY_SERVICE_ROLE();
|
111
|
-
|
112
|
-
getInstanceService().createGifTarget(
|
113
|
-
instanceNftId,
|
114
|
-
poolAddress,
|
115
|
-
pool.getName(),
|
116
|
-
selectors,
|
117
|
-
roles);
|
118
|
-
}
|
119
|
-
|
120
91
|
|
121
92
|
function setMaxCapitalAmount(Amount maxCapitalAmount)
|
122
93
|
external
|
123
94
|
virtual
|
124
95
|
{
|
125
|
-
|
96
|
+
/*
|
97
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
126
98
|
InstanceReader instanceReader = instance.getInstanceReader();
|
127
99
|
|
128
100
|
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
@@ -130,17 +102,17 @@ contract PoolService is
|
|
130
102
|
Amount previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
|
131
103
|
|
132
104
|
poolInfo.maxCapitalAmount = maxCapitalAmount;
|
133
|
-
|
134
|
-
instance.getInstanceStore().updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
|
105
|
+
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
135
106
|
|
136
107
|
emit LogPoolServiceMaxCapitalAmountUpdated(poolNftId, previousMaxCapitalAmount, maxCapitalAmount);
|
108
|
+
*/
|
137
109
|
}
|
138
110
|
|
139
111
|
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
140
112
|
external
|
141
113
|
virtual
|
142
114
|
{
|
143
|
-
(NftId poolNftId,, IInstance instance) =
|
115
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
144
116
|
InstanceReader instanceReader = instance.getInstanceReader();
|
145
117
|
|
146
118
|
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
@@ -152,8 +124,7 @@ contract PoolService is
|
|
152
124
|
}
|
153
125
|
|
154
126
|
poolInfo.bundleOwnerRole = bundleOwnerRole;
|
155
|
-
|
156
|
-
instance.getInstanceStore().updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
|
127
|
+
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
157
128
|
|
158
129
|
emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
|
159
130
|
}
|
@@ -167,24 +138,20 @@ contract PoolService is
|
|
167
138
|
external
|
168
139
|
virtual
|
169
140
|
{
|
170
|
-
(NftId poolNftId,, IInstance instance) =
|
171
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
172
|
-
|
173
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
174
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
141
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
175
142
|
|
143
|
+
IComponents.PoolInfo memory poolInfo = instance.getInstanceReader().getPoolInfo(poolNftId);
|
176
144
|
poolInfo.poolFee = poolFee;
|
177
145
|
poolInfo.stakingFee = stakingFee;
|
178
146
|
poolInfo.performanceFee = performanceFee;
|
179
|
-
|
180
|
-
instance.getInstanceStore().
|
147
|
+
|
148
|
+
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
181
149
|
|
182
150
|
// TODO add logging
|
183
151
|
}
|
184
152
|
|
185
|
-
|
186
153
|
function createBundle(
|
187
|
-
address
|
154
|
+
address bundleOwner, // initial bundle owner
|
188
155
|
Fee memory fee, // fees deducted from premium that go to bundle owner
|
189
156
|
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
190
157
|
Seconds lifetime, // initial duration for which new policies are covered
|
@@ -194,34 +161,57 @@ contract PoolService is
|
|
194
161
|
virtual
|
195
162
|
returns(NftId bundleNftId)
|
196
163
|
{
|
197
|
-
(NftId poolNftId,, IInstance instance) =
|
164
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
198
165
|
InstanceReader instanceReader = instance.getInstanceReader();
|
199
166
|
|
200
|
-
|
201
|
-
|
202
|
-
|
167
|
+
(
|
168
|
+
Amount stakingFeeAmount,
|
169
|
+
Amount stakingNetAmount
|
170
|
+
) = FeeLib.calculateFee(
|
171
|
+
_getStakingFee(instanceReader, poolNftId),
|
172
|
+
stakingAmount);
|
203
173
|
|
204
174
|
bundleNftId = _bundleService.create(
|
205
175
|
instance,
|
206
176
|
poolNftId,
|
207
|
-
|
177
|
+
bundleOwner,
|
208
178
|
fee,
|
209
179
|
stakingNetAmount,
|
210
180
|
lifetime,
|
211
181
|
filter);
|
212
182
|
|
213
|
-
//
|
214
|
-
|
183
|
+
// pool book keeping
|
184
|
+
_componentService.increasePoolBalance(
|
185
|
+
instance.getInstanceStore(),
|
186
|
+
poolNftId,
|
187
|
+
stakingAmount,
|
188
|
+
stakingFeeAmount);
|
189
|
+
|
190
|
+
// pool bookkeeping and collect tokens from bundle owner
|
191
|
+
_collectStakingAmount(
|
192
|
+
instanceReader,
|
193
|
+
poolNftId,
|
194
|
+
bundleOwner,
|
195
|
+
stakingAmount);
|
215
196
|
|
216
197
|
emit LogPoolServiceBundleCreated(instance.getNftId(), poolNftId, bundleNftId);
|
217
198
|
}
|
218
199
|
|
200
|
+
function _getStakingFee(InstanceReader instanceReader, NftId poolNftId)
|
201
|
+
internal
|
202
|
+
virtual
|
203
|
+
view
|
204
|
+
returns (Fee memory stakingFee)
|
205
|
+
{
|
206
|
+
NftId productNftId = instanceReader.getPoolInfo(poolNftId).productNftId;
|
207
|
+
return instanceReader.getPoolInfo(productNftId).stakingFee;
|
208
|
+
}
|
219
209
|
|
220
210
|
function closeBundle(NftId bundleNftId)
|
221
211
|
external
|
222
212
|
virtual
|
223
213
|
{
|
224
|
-
(NftId poolNftId,, IInstance instance) =
|
214
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
225
215
|
|
226
216
|
// TODO book keeping for pool collateral released outside of retention level
|
227
217
|
|
@@ -233,13 +223,14 @@ contract PoolService is
|
|
233
223
|
emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
|
234
224
|
}
|
235
225
|
|
226
|
+
|
236
227
|
function processSale(
|
237
228
|
NftId bundleNftId,
|
238
|
-
IPolicy.Premium memory premium
|
239
|
-
Amount actualAmountTransferred
|
229
|
+
IPolicy.Premium memory premium
|
240
230
|
)
|
241
231
|
external
|
242
232
|
virtual
|
233
|
+
restricted
|
243
234
|
{
|
244
235
|
IRegistry registry = getRegistry();
|
245
236
|
IRegistry.ObjectInfo memory bundleObjectInfo = registry.getObjectInfo(bundleNftId);
|
@@ -249,90 +240,90 @@ contract PoolService is
|
|
249
240
|
|
250
241
|
Amount poolFeeAmount = AmountLib.toAmount(premium.poolFeeFixAmount + premium.poolFeeVarAmount);
|
251
242
|
Amount bundleFeeAmount = AmountLib.toAmount(premium.bundleFeeFixAmount + premium.bundleFeeVarAmount);
|
252
|
-
Amount
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
}
|
243
|
+
Amount bundleNetAmount = AmountLib.toAmount(premium.netPremiumAmount);
|
244
|
+
|
245
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
246
|
+
_componentService.increasePoolBalance(
|
247
|
+
instanceStore,
|
248
|
+
poolObjectInfo.nftId,
|
249
|
+
bundleNetAmount + bundleFeeAmount,
|
250
|
+
poolFeeAmount);
|
251
|
+
|
252
|
+
_componentService.increaseBundleBalance(
|
253
|
+
instanceStore,
|
254
|
+
bundleObjectInfo.nftId,
|
255
|
+
bundleNetAmount,
|
256
|
+
bundleFeeAmount);
|
267
257
|
}
|
268
258
|
|
259
|
+
|
269
260
|
function lockCollateral(
|
270
261
|
IInstance instance,
|
262
|
+
address token,
|
271
263
|
NftId productNftId,
|
272
264
|
NftId applicationNftId,
|
273
|
-
|
274
|
-
Amount
|
265
|
+
NftId bundleNftId,
|
266
|
+
Amount sumInsuredAmount // premium amount after product and distribution fees
|
275
267
|
)
|
276
268
|
external
|
277
269
|
virtual
|
278
|
-
|
270
|
+
restricted()
|
271
|
+
returns (
|
272
|
+
Amount localCollateralAmount,
|
273
|
+
Amount totalCollateralAmount
|
274
|
+
)
|
279
275
|
{
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
}
|
290
|
-
|
291
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
292
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
293
|
-
|
294
|
-
// TODO add correct required collateral calculation (collateralization level mibht be != 1, retention level might be < 1)
|
295
|
-
Amount collateralAmount = applicationInfo.sumInsuredAmount;
|
296
|
-
|
297
|
-
// TODO add correct net premium calculation (pool fee might be > 0)
|
298
|
-
Amount premiumAfterPoolFeeAmount = premiumAmount;
|
299
|
-
|
300
|
-
// lock collateral amount from involvedd bundle
|
276
|
+
(
|
277
|
+
localCollateralAmount,
|
278
|
+
totalCollateralAmount
|
279
|
+
) = calculateRequiredCollateral(
|
280
|
+
instance.getInstanceReader(),
|
281
|
+
productNftId,
|
282
|
+
sumInsuredAmount);
|
283
|
+
|
284
|
+
// lock collateral amount from involved bundle
|
301
285
|
_bundleService.lockCollateral(
|
302
286
|
instance,
|
303
287
|
applicationNftId,
|
304
288
|
bundleNftId,
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
289
|
+
localCollateralAmount);
|
290
|
+
|
291
|
+
// update value locked with staking service
|
292
|
+
_staking.increaseTotalValueLocked(
|
293
|
+
instance.getNftId(),
|
294
|
+
token,
|
295
|
+
totalCollateralAmount);
|
296
|
+
|
297
|
+
// hierarhical riskpool setup
|
298
|
+
// TODO loop in with pool component to guarantee availability of external capital
|
299
|
+
if(totalCollateralAmount > localCollateralAmount) {
|
300
|
+
|
317
301
|
}
|
318
302
|
}
|
319
303
|
|
320
304
|
|
321
305
|
function reduceCollateral(
|
322
306
|
IInstance instance,
|
307
|
+
address token,
|
323
308
|
NftId policyNftId,
|
324
309
|
IPolicy.PolicyInfo memory policyInfo,
|
325
310
|
Amount payoutAmount
|
326
311
|
)
|
327
312
|
external
|
328
313
|
virtual
|
329
|
-
|
314
|
+
restricted
|
330
315
|
{
|
331
316
|
_bundleService.releaseCollateral(
|
332
317
|
instance,
|
333
318
|
policyNftId,
|
334
319
|
policyInfo.bundleNftId,
|
335
320
|
payoutAmount);
|
321
|
+
|
322
|
+
// update value locked with staking service
|
323
|
+
_staking.decreaseTotalValueLocked(
|
324
|
+
instance.getNftId(),
|
325
|
+
token,
|
326
|
+
payoutAmount);
|
336
327
|
}
|
337
328
|
|
338
329
|
|
@@ -340,27 +331,84 @@ contract PoolService is
|
|
340
331
|
/// may only be called by the policy service for unlocked pool components
|
341
332
|
function releaseCollateral(
|
342
333
|
IInstance instance,
|
334
|
+
address token,
|
343
335
|
NftId policyNftId,
|
344
336
|
IPolicy.PolicyInfo memory policyInfo
|
345
337
|
)
|
346
338
|
external
|
347
339
|
virtual
|
348
|
-
|
340
|
+
restricted
|
349
341
|
{
|
342
|
+
Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
|
343
|
+
|
350
344
|
_bundleService.releaseCollateral(
|
351
345
|
instance,
|
352
346
|
policyNftId,
|
353
347
|
policyInfo.bundleNftId,
|
354
|
-
|
348
|
+
remainingCollateralAmount);
|
355
349
|
|
356
350
|
_bundleService.unlinkPolicy(
|
357
351
|
instance,
|
358
352
|
policyNftId);
|
353
|
+
|
354
|
+
// update value locked with staking service
|
355
|
+
_staking.decreaseTotalValueLocked(
|
356
|
+
instance.getNftId(),
|
357
|
+
token,
|
358
|
+
remainingCollateralAmount);
|
359
|
+
}
|
360
|
+
|
361
|
+
|
362
|
+
function calculateRequiredCollateral(
|
363
|
+
InstanceReader instanceReader,
|
364
|
+
NftId productNftId,
|
365
|
+
Amount sumInsuredAmount
|
366
|
+
)
|
367
|
+
public
|
368
|
+
view
|
369
|
+
returns(
|
370
|
+
Amount localCollateralAmount,
|
371
|
+
Amount totalCollateralAmount
|
372
|
+
)
|
373
|
+
{
|
374
|
+
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
375
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
376
|
+
|
377
|
+
(
|
378
|
+
localCollateralAmount,
|
379
|
+
totalCollateralAmount
|
380
|
+
) = calculateRequiredCollateral(
|
381
|
+
poolInfo.collateralizationLevel,
|
382
|
+
poolInfo.retentionLevel,
|
383
|
+
sumInsuredAmount);
|
384
|
+
}
|
385
|
+
|
386
|
+
|
387
|
+
function calculateRequiredCollateral(
|
388
|
+
UFixed collateralizationLevel,
|
389
|
+
UFixed retentionLevel,
|
390
|
+
Amount sumInsuredAmount
|
391
|
+
)
|
392
|
+
public
|
393
|
+
pure
|
394
|
+
returns(
|
395
|
+
Amount localCollateralAmount,
|
396
|
+
Amount totalCollateralAmount
|
397
|
+
)
|
398
|
+
{
|
399
|
+
// TODO define if only applies to local collateral
|
400
|
+
// TODO add minimalistic implementation
|
401
|
+
|
402
|
+
// assumptions
|
403
|
+
// - collateralizationLevel == 1.0
|
404
|
+
// - retentionLevel == 1.0
|
405
|
+
localCollateralAmount = sumInsuredAmount;
|
406
|
+
totalCollateralAmount = localCollateralAmount;
|
359
407
|
}
|
360
408
|
|
361
409
|
|
362
410
|
function _processStakingFees(
|
363
|
-
|
411
|
+
Fee memory stakingFee,
|
364
412
|
Amount stakingAmount
|
365
413
|
)
|
366
414
|
internal
|
@@ -369,7 +417,6 @@ contract PoolService is
|
|
369
417
|
stakingNetAmount = stakingAmount;
|
370
418
|
|
371
419
|
// check if any staking fees apply
|
372
|
-
Fee memory stakingFee = abi.decode(componentInfo.data, (IComponents.PoolInfo)).stakingFee;
|
373
420
|
if (FeeLib.gtz(stakingFee)) {
|
374
421
|
(Amount feeAmount, Amount netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount);
|
375
422
|
stakingNetAmount = netAmount;
|
@@ -381,22 +428,25 @@ contract PoolService is
|
|
381
428
|
|
382
429
|
// TODO create (I)TreasuryService that deals with all gif related token transfers
|
383
430
|
/// @dev transfers the specified amount from the bundle owner to the pool's wallet
|
384
|
-
function
|
385
|
-
|
431
|
+
function _collectStakingAmount(
|
432
|
+
InstanceReader instanceReader,
|
433
|
+
NftId poolNftId,
|
386
434
|
address bundleOwner,
|
387
|
-
Amount
|
435
|
+
Amount amount
|
388
436
|
)
|
389
437
|
internal
|
390
438
|
{
|
439
|
+
|
440
|
+
// collecting investor token
|
441
|
+
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
391
442
|
TokenHandler tokenHandler = componentInfo.tokenHandler;
|
392
443
|
address poolWallet = componentInfo.wallet;
|
393
444
|
|
394
|
-
if(
|
445
|
+
if(amount.gtz()) {
|
395
446
|
tokenHandler.transfer(
|
396
447
|
bundleOwner,
|
397
448
|
poolWallet,
|
398
|
-
|
399
|
-
);
|
449
|
+
amount);
|
400
450
|
}
|
401
451
|
}
|
402
452
|
|
@@ -14,29 +14,20 @@ contract PoolServiceManager is ProxyManager {
|
|
14
14
|
|
15
15
|
/// @dev initializes proxy manager with pool service implementation
|
16
16
|
constructor(
|
17
|
-
address
|
18
|
-
|
17
|
+
address authority,
|
18
|
+
address registryAddress,
|
19
|
+
bytes32 salt
|
20
|
+
)
|
19
21
|
ProxyManager(registryAddress)
|
20
22
|
{
|
21
|
-
PoolService poolSrv = new PoolService();
|
22
|
-
bytes memory data = abi.encode(registryAddress, address(this));
|
23
|
-
IVersionable versionable =
|
23
|
+
PoolService poolSrv = new PoolService{salt: salt}();
|
24
|
+
bytes memory data = abi.encode(registryAddress, address(this), authority);
|
25
|
+
IVersionable versionable = deployDetermenistic(
|
24
26
|
address(poolSrv),
|
25
|
-
data
|
27
|
+
data,
|
28
|
+
salt);
|
26
29
|
|
27
30
|
_poolService = PoolService(address(versionable));
|
28
|
-
|
29
|
-
// TODO `this` must have a role or own nft to register service
|
30
|
-
//Registry registry = Registry(registryAddress);
|
31
|
-
//address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _poolService.getMajorVersion());
|
32
|
-
//RegistryService registryService = RegistryService(registryServiceAddress);
|
33
|
-
//registryService.registerService(_poolService);
|
34
|
-
|
35
|
-
// TODO no nft to link yet
|
36
|
-
// link ownership of instance service manager ot nft owner of instance service
|
37
|
-
//_linkToNftOwnable(
|
38
|
-
// address(registryAddress),
|
39
|
-
// address(_poolService));
|
40
31
|
}
|
41
32
|
|
42
33
|
//--- view functions ----------------------------------------------------//
|