@etherisc/gif-next 0.0.2-8e4a894-109 → 0.0.2-8e5f0ee-617
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 +21 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +154 -339
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +158 -320
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +127 -81
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +151 -251
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +67 -64
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -108
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +71 -72
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +188 -47
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +87 -120
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +500 -334
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +277 -96
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +120 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1125 -371
- 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/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -78
- 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/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -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 +1063 -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/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +95 -249
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +115 -57
- 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 +149 -285
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +136 -135
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +197 -335
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +186 -355
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +102 -68
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +97 -152
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +116 -34
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +135 -196
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +130 -56
- 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 +30 -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 +253 -148
- 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 +184 -282
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +113 -87
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +167 -159
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +141 -43
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +296 -237
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +47 -203
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +94 -32
- 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 +135 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +317 -52
- 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 +367 -39
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +370 -68
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -35
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +692 -92
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -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/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +105 -82
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +901 -45
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -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/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 +718 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +12 -16
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- 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 +996 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -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 +20 -1
- 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/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +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 +661 -85
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -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 +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +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 +149 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +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 +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
- 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/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/distribution/Distribution.sol +144 -146
- package/contracts/distribution/DistributionService.sol +64 -110
- package/contracts/distribution/DistributionServiceManager.sol +9 -18
- package/contracts/distribution/IDistributionComponent.sol +20 -43
- package/contracts/distribution/IDistributionService.sol +7 -9
- package/contracts/instance/IInstance.sol +21 -12
- package/contracts/instance/IInstanceService.sol +41 -22
- package/contracts/instance/Instance.sol +111 -86
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +84 -47
- package/contracts/instance/InstanceService.sol +259 -124
- package/contracts/instance/InstanceServiceManager.sol +10 -20
- package/contracts/instance/InstanceStore.sol +131 -66
- 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/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/ObjectManager.sol +7 -10
- 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 +12 -5
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +157 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +76 -162
- package/contracts/pool/BundleServiceManager.sol +9 -18
- package/contracts/pool/IBundleService.sol +4 -16
- package/contracts/pool/IPoolComponent.sol +4 -66
- package/contracts/pool/IPoolService.sol +45 -9
- package/contracts/pool/Pool.sol +150 -141
- package/contracts/pool/PoolService.sol +198 -149
- package/contracts/pool/PoolServiceManager.sol +9 -18
- package/contracts/product/ApplicationService.sol +114 -46
- package/contracts/product/ApplicationServiceManager.sol +9 -6
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +33 -28
- package/contracts/product/ClaimServiceManager.sol +9 -6
- package/contracts/product/IApplicationService.sol +1 -1
- package/contracts/product/IClaimService.sol +12 -3
- package/contracts/product/IPolicyService.sol +6 -8
- package/contracts/product/IPricingService.sol +3 -1
- package/contracts/product/IProductComponent.sol +9 -11
- package/contracts/product/IProductService.sol +1 -8
- package/contracts/product/PolicyService.sol +231 -132
- package/contracts/product/PolicyServiceManager.sol +9 -21
- package/contracts/product/PricingService.sol +78 -53
- package/contracts/product/PricingServiceManager.sol +9 -18
- package/contracts/product/Product.sol +126 -109
- package/contracts/product/ProductService.sol +32 -118
- package/contracts/product/ProductServiceManager.sol +9 -21
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +37 -17
- package/contracts/registry/IRegistryService.sol +33 -30
- package/contracts/registry/Registry.sol +193 -82
- package/contracts/registry/RegistryAdmin.sol +365 -0
- package/contracts/registry/RegistryService.sol +63 -82
- package/contracts/registry/RegistryServiceManager.sol +21 -28
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseManager.sol +354 -191
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +139 -129
- package/contracts/shared/ComponentService.sol +524 -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/IComponent.sol +17 -37
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- 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 +151 -0
- package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -73
- package/contracts/shared/Lifecycle.sol +77 -0
- 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 +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/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +290 -45
- package/contracts/staking/{StakeingServiceManager.sol → StakingServiceManager.sol} +11 -4
- package/contracts/staking/StakingStore.sol +615 -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 +176 -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 +117 -40
- 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/UFixed.sol +6 -0
- package/contracts/type/Version.sol +1 -1
- package/package.json +8 -5
- 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/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
- 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/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +0 -628
- package/contracts/instance/InstanceAccessManager.sol +0 -541
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/base/Lifecycle.sol +0 -120
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
@@ -1,18 +1,18 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IBundle} from "../instance/module/IBundle.sol";
|
5
5
|
import {IComponents} from "../instance/module/IComponents.sol";
|
6
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
6
7
|
import {IRegistry} from "../registry/IRegistry.sol";
|
7
8
|
import {IInstance} from "../instance/IInstance.sol";
|
8
|
-
import {
|
9
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
9
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
10
10
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
11
|
|
12
12
|
import {IVersionable} from "../shared/IVersionable.sol";
|
13
13
|
import {INftOwnable} from "../shared/INftOwnable.sol";
|
14
|
-
import {NftId, NftIdLib
|
15
|
-
import {ObjectType, POOL, BUNDLE} from "../type/ObjectType.sol";
|
14
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
15
|
+
import {ObjectType, COMPONENT, POOL, BUNDLE, REGISTRY} from "../type/ObjectType.sol";
|
16
16
|
import {POOL_OWNER_ROLE, RoleId} from "../type/RoleId.sol";
|
17
17
|
import {Pool} from "./Pool.sol";
|
18
18
|
|
@@ -27,7 +27,7 @@ import {Versionable} from "../shared/Versionable.sol";
|
|
27
27
|
import {IService} from "../shared/IService.sol";
|
28
28
|
import {Service} from "../shared/Service.sol";
|
29
29
|
import {BundleManager} from "../instance/BundleManager.sol";
|
30
|
-
import {
|
30
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
31
31
|
import {IBundleService} from "./IBundleService.sol";
|
32
32
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
33
33
|
import {InstanceService} from "../instance/InstanceService.sol";
|
@@ -36,14 +36,16 @@ import {InstanceReader} from "../instance/InstanceReader.sol";
|
|
36
36
|
string constant BUNDLE_SERVICE_NAME = "BundleService";
|
37
37
|
|
38
38
|
contract BundleService is
|
39
|
-
|
39
|
+
ComponentVerifyingService,
|
40
40
|
IBundleService
|
41
41
|
{
|
42
42
|
using NftIdLib for NftId;
|
43
43
|
|
44
44
|
string public constant NAME = "BundleService";
|
45
45
|
|
46
|
-
address
|
46
|
+
address private _registryAddress;
|
47
|
+
IRegistryService private _registryService;
|
48
|
+
IComponentService private _componentService;
|
47
49
|
|
48
50
|
function _initialize(
|
49
51
|
address owner,
|
@@ -59,55 +61,34 @@ contract BundleService is
|
|
59
61
|
// TODO while PoolService is not deployed in PoolServiceManager constructor
|
60
62
|
// owner is PoolServiceManager deployer
|
61
63
|
initializeService(registryAddress, address(0), owner);
|
64
|
+
|
65
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
66
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
67
|
+
|
62
68
|
registerInterface(type(IBundleService).interfaceId);
|
63
69
|
}
|
64
70
|
|
65
|
-
function getDomain() public pure override returns(ObjectType) {
|
66
|
-
return BUNDLE();
|
67
|
-
}
|
68
71
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
// collateralize: additional reason to move to pool, pool might has retential level < 1 ...
|
73
|
-
// staking -> potentially accumulate staking fees
|
74
|
-
// unstaking -> potentially accumulate performance fees
|
75
|
-
function _updatePoolWithStakes(
|
76
|
-
IInstance instance,
|
77
|
-
NftId poolNftId,
|
78
|
-
Amount stakingAmount
|
72
|
+
function setFee(
|
73
|
+
NftId bundleNftId,
|
74
|
+
Fee memory fee
|
79
75
|
)
|
80
|
-
|
81
|
-
|
82
|
-
TokenHandler tokenHandler,
|
83
|
-
address wallet,
|
84
|
-
Amount netStakingAmount
|
85
|
-
)
|
76
|
+
external
|
77
|
+
virtual
|
86
78
|
{
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
95
|
-
Amount poolFeeAmount;
|
96
|
-
|
97
|
-
// calculate pool fee and net staking amount
|
98
|
-
(poolFeeAmount, netStakingAmount) = FeeLib.calculateFee(poolInfo.stakingFee, stakingAmount);
|
99
|
-
|
100
|
-
// update pool balance and fee amount
|
101
|
-
poolInfo.balanceAmount = poolInfo.balanceAmount + netStakingAmount;
|
102
|
-
|
103
|
-
if(poolFeeAmount.gtz()) {
|
104
|
-
poolInfo.feeAmount = poolInfo.feeAmount + poolFeeAmount;
|
105
|
-
}
|
79
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
80
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
81
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
82
|
+
if(bundleInfo.poolNftId.eqz()) {
|
83
|
+
revert ErrorBundleServiceBundleUnknown(bundleNftId);
|
84
|
+
}
|
106
85
|
|
107
|
-
|
108
|
-
|
109
|
-
instance.getInstanceStore().updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
|
86
|
+
if(bundleInfo.poolNftId != poolNftId) {
|
87
|
+
revert ErrorBundleServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
|
110
88
|
}
|
89
|
+
|
90
|
+
bundleInfo.fee = fee;
|
91
|
+
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
111
92
|
}
|
112
93
|
|
113
94
|
|
@@ -122,13 +103,13 @@ contract BundleService is
|
|
122
103
|
)
|
123
104
|
external
|
124
105
|
override
|
125
|
-
|
106
|
+
restricted
|
126
107
|
returns(NftId bundleNftId)
|
127
108
|
{
|
128
109
|
// register bundle with registry
|
129
|
-
bundleNftId =
|
110
|
+
bundleNftId = _registryService.registerBundle(
|
130
111
|
IRegistry.ObjectInfo(
|
131
|
-
|
112
|
+
NftIdLib.zero(),
|
132
113
|
poolNftId,
|
133
114
|
BUNDLE(),
|
134
115
|
false, // intercepting property for bundles is defined on pool
|
@@ -139,19 +120,24 @@ contract BundleService is
|
|
139
120
|
);
|
140
121
|
|
141
122
|
// create bundle info in instance
|
142
|
-
instance.getInstanceStore()
|
123
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
124
|
+
instanceStore.createBundle(
|
143
125
|
bundleNftId,
|
144
126
|
IBundle.BundleInfo(
|
145
127
|
poolNftId,
|
146
128
|
bundleFee,
|
147
129
|
filter,
|
148
|
-
stakingAmount,
|
149
|
-
AmountLib.zero(),
|
150
|
-
AmountLib.zero(),
|
151
130
|
lifetime,
|
152
131
|
TimestampLib.blockTimestamp().addSeconds(lifetime),
|
153
132
|
zeroTimestamp()));
|
154
133
|
|
134
|
+
// bundle book keeping
|
135
|
+
_componentService.increaseBundleBalance(
|
136
|
+
instanceStore,
|
137
|
+
bundleNftId,
|
138
|
+
stakingAmount,
|
139
|
+
AmountLib.zero()); // fee amount
|
140
|
+
|
155
141
|
// put bundle under bundle managemet
|
156
142
|
BundleManager bundleManager = instance.getBundleManager();
|
157
143
|
bundleManager.add(bundleNftId);
|
@@ -160,39 +146,16 @@ contract BundleService is
|
|
160
146
|
}
|
161
147
|
|
162
148
|
|
163
|
-
function setFee(
|
164
|
-
NftId bundleNftId,
|
165
|
-
Fee memory fee
|
166
|
-
)
|
167
|
-
external
|
168
|
-
override
|
169
|
-
{
|
170
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(POOL());
|
171
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
172
|
-
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
173
|
-
if(bundleInfo.poolNftId.eqz()) {
|
174
|
-
revert ErrorBundleServiceBundleUnknown(bundleNftId);
|
175
|
-
}
|
176
|
-
|
177
|
-
if(bundleInfo.poolNftId != poolNftId) {
|
178
|
-
revert ErrorBundleServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
|
179
|
-
}
|
180
|
-
|
181
|
-
bundleInfo.fee = fee;
|
182
|
-
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
183
|
-
}
|
184
|
-
|
185
|
-
|
186
149
|
// the bundle MUST be unlocked (active) for linking (underwriting) and registered with this instance
|
187
150
|
function lockCollateral(
|
188
151
|
IInstance instance,
|
189
152
|
NftId policyNftId,
|
190
153
|
NftId bundleNftId,
|
191
|
-
Amount collateralAmount
|
192
|
-
Amount premiumAmount // premium part that reaches bundle for this policy
|
154
|
+
Amount collateralAmount // required local amount to collateralize policy
|
193
155
|
)
|
194
156
|
external
|
195
|
-
|
157
|
+
virtual
|
158
|
+
restricted()
|
196
159
|
{
|
197
160
|
InstanceReader instanceReader = instance.getInstanceReader();
|
198
161
|
StateId bundleState = instanceReader.getMetadata(bundleNftId.toKey32(BUNDLE())).state;
|
@@ -204,65 +167,31 @@ contract BundleService is
|
|
204
167
|
}
|
205
168
|
|
206
169
|
// ensure bundle capacity is sufficent to collateralize policy
|
207
|
-
|
170
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
171
|
+
(
|
172
|
+
Amount balanceAmount,
|
173
|
+
Amount lockedAmount,
|
174
|
+
Amount feeAmount
|
175
|
+
) = instanceStore.getAmounts(bundleNftId);
|
176
|
+
|
177
|
+
Amount capacity = balanceAmount - (lockedAmount + feeAmount);
|
208
178
|
if(capacity < collateralAmount) {
|
209
179
|
revert ErrorBundleServiceCapacityInsufficient(bundleNftId, capacity, collateralAmount);
|
210
180
|
}
|
211
181
|
|
212
|
-
// TODO add more validation
|
213
|
-
|
214
182
|
// updated locked amount
|
215
|
-
|
216
|
-
|
217
|
-
// update capital and fees when premiums are involved
|
218
|
-
_updateBundleWithPremium(instance, bundleNftId, bundleInfo, premiumAmount);
|
183
|
+
instanceStore.increaseLocked(bundleNftId, collateralAmount);
|
219
184
|
|
220
185
|
// link policy to bundle in bundle manger
|
221
186
|
_linkPolicy(instance, policyNftId);
|
222
187
|
}
|
223
188
|
|
224
189
|
|
225
|
-
function _updateBundleWithPremium(
|
226
|
-
IInstance instance,
|
227
|
-
NftId bundleNftId,
|
228
|
-
IBundle.BundleInfo memory bundleInfo,
|
229
|
-
Amount premiumAmount
|
230
|
-
)
|
231
|
-
internal
|
232
|
-
{
|
233
|
-
// update bundle capital and fee amounts
|
234
|
-
if(premiumAmount.gtz()) {
|
235
|
-
// calculate fees and net premium amounts
|
236
|
-
(
|
237
|
-
,
|
238
|
-
Amount netPremiumAmount
|
239
|
-
) = FeeLib.calculateFee(bundleInfo.fee, premiumAmount);
|
240
|
-
|
241
|
-
// update bundle info with additional capital
|
242
|
-
bundleInfo.capitalAmount = bundleInfo.capitalAmount + netPremiumAmount;
|
243
|
-
}
|
244
|
-
|
245
|
-
// save updated bundle info
|
246
|
-
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
247
|
-
}
|
248
|
-
|
249
|
-
function updateBundleFees(
|
250
|
-
IInstance instance,
|
251
|
-
NftId bundleNftId,
|
252
|
-
Amount feeAmount
|
253
|
-
)
|
254
|
-
external
|
255
|
-
{
|
256
|
-
IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
|
257
|
-
bundleInfo.feeAmount = bundleInfo.feeAmount.add(feeAmount);
|
258
|
-
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
259
|
-
}
|
260
|
-
|
261
190
|
function lock(NftId bundleNftId)
|
262
191
|
external
|
263
192
|
virtual
|
264
193
|
{
|
265
|
-
(,, IInstance instance) =
|
194
|
+
(,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
266
195
|
|
267
196
|
// udpate bundle state
|
268
197
|
instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
|
@@ -279,7 +208,7 @@ contract BundleService is
|
|
279
208
|
external
|
280
209
|
virtual
|
281
210
|
{
|
282
|
-
(,, IInstance instance) =
|
211
|
+
(,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
283
212
|
|
284
213
|
// udpate bundle state
|
285
214
|
instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
|
@@ -298,7 +227,7 @@ contract BundleService is
|
|
298
227
|
)
|
299
228
|
external
|
300
229
|
virtual
|
301
|
-
|
230
|
+
restricted
|
302
231
|
{
|
303
232
|
// udpate bundle state
|
304
233
|
instance.getInstanceStore().updateBundleState(bundleNftId, CLOSED());
|
@@ -315,37 +244,34 @@ contract BundleService is
|
|
315
244
|
}
|
316
245
|
|
317
246
|
|
318
|
-
function
|
247
|
+
function releaseCollateral(
|
319
248
|
IInstance instance,
|
249
|
+
NftId policyNftId,
|
320
250
|
NftId bundleNftId,
|
321
|
-
Amount
|
251
|
+
Amount collateralAmount
|
322
252
|
)
|
323
253
|
external
|
324
|
-
|
254
|
+
virtual
|
255
|
+
restricted()
|
325
256
|
{
|
326
|
-
|
327
|
-
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
328
|
-
|
329
|
-
// update capital and fees when premiums are involved
|
330
|
-
_updateBundleWithPremium(instance, bundleNftId, bundleInfo, premiumAmount);
|
331
|
-
|
332
|
-
// TODO add logging (?)
|
257
|
+
instance.getInstanceStore().decreaseLocked(bundleNftId, collateralAmount);
|
333
258
|
}
|
334
259
|
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
260
|
+
/// @dev unlinks policy from bundle
|
261
|
+
function unlinkPolicy(
|
262
|
+
IInstance instance,
|
263
|
+
NftId policyNftId
|
339
264
|
)
|
340
265
|
external
|
341
|
-
|
266
|
+
virtual
|
267
|
+
restricted
|
342
268
|
{
|
343
|
-
|
344
|
-
|
269
|
+
// ensure policy is closeable
|
270
|
+
if (!instance.getInstanceReader().policyIsCloseable(policyNftId)) {
|
271
|
+
revert ErrorBundleServicePolicyNotCloseable(policyNftId);
|
272
|
+
}
|
345
273
|
|
346
|
-
|
347
|
-
bundleInfo.lockedAmount = bundleInfo.lockedAmount - collateralAmount;
|
348
|
-
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
274
|
+
instance.getBundleManager().unlinkPolicy(policyNftId);
|
349
275
|
}
|
350
276
|
|
351
277
|
/// @dev links policy to bundle
|
@@ -364,19 +290,7 @@ contract BundleService is
|
|
364
290
|
bundleManager.linkPolicy(policyNftId);
|
365
291
|
}
|
366
292
|
|
367
|
-
|
368
|
-
|
369
|
-
IInstance instance,
|
370
|
-
NftId policyNftId
|
371
|
-
)
|
372
|
-
external
|
373
|
-
virtual
|
374
|
-
{
|
375
|
-
// ensure policy is closeable
|
376
|
-
if (!instance.getInstanceReader().policyIsCloseable(policyNftId)) {
|
377
|
-
revert ErrorBundleServicePolicyNotCloseable(policyNftId);
|
378
|
-
}
|
379
|
-
|
380
|
-
instance.getBundleManager().unlinkPolicy(policyNftId);
|
293
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
294
|
+
return BUNDLE();
|
381
295
|
}
|
382
296
|
}
|
@@ -14,29 +14,20 @@ contract BundleServiceManager 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
|
-
BundleService bundleSrv = new BundleService();
|
22
|
-
bytes memory data = abi.encode(registryAddress, address(this));
|
23
|
-
IVersionable versionable =
|
23
|
+
BundleService bundleSrv = new BundleService{salt: salt}();
|
24
|
+
bytes memory data = abi.encode(registryAddress, address(this), authority);
|
25
|
+
IVersionable versionable = deployDetermenistic(
|
24
26
|
address(bundleSrv),
|
25
|
-
data
|
27
|
+
data,
|
28
|
+
salt);
|
26
29
|
|
27
30
|
_bundleService = BundleService(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(), _bundleService.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 ----------------------------------------------------//
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
5
|
import {NftId} from "../type/NftId.sol";
|
@@ -80,13 +80,13 @@ interface IBundleService is IService {
|
|
80
80
|
/// the premium (minus bundle fee) is added to the bundle capital
|
81
81
|
/// may only be called by pool service
|
82
82
|
function lockCollateral(
|
83
|
-
IInstance
|
83
|
+
IInstance instance,
|
84
84
|
NftId policyNftId,
|
85
85
|
NftId bundleNftId,
|
86
|
-
Amount collateralAmount
|
87
|
-
Amount premiumAmount // premium after pool fee
|
86
|
+
Amount collateralAmount
|
88
87
|
) external;
|
89
88
|
|
89
|
+
|
90
90
|
/// @dev releases the specified collateral in the bundle
|
91
91
|
/// may only be called by pool service
|
92
92
|
function releaseCollateral(
|
@@ -103,16 +103,4 @@ interface IBundleService is IService {
|
|
103
103
|
IInstance instance,
|
104
104
|
NftId policyNftId
|
105
105
|
) external;
|
106
|
-
|
107
|
-
/// @dev updates the bundle's fees of with the provided fee amount
|
108
|
-
function updateBundleFees(
|
109
|
-
IInstance instance,
|
110
|
-
NftId bundleNftId,
|
111
|
-
Amount feeAmount
|
112
|
-
) external;
|
113
|
-
|
114
|
-
function increaseBalance(
|
115
|
-
IInstance instance,
|
116
|
-
NftId bundleNftId,
|
117
|
-
Amount amount) external;
|
118
106
|
}
|
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
5
|
import {Fee} from "../type/Fee.sol";
|
6
|
-
import {
|
6
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
7
7
|
import {IComponents} from "../instance/module/IComponents.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
9
|
import {RoleId} from "../type/RoleId.sol";
|
@@ -12,74 +12,14 @@ import {UFixed} from "../type/UFixed.sol";
|
|
12
12
|
|
13
13
|
/// @dev pool components hold and manage the collateral to cover active policies
|
14
14
|
/// pools come in different flavors
|
15
|
-
interface IPoolComponent is
|
15
|
+
interface IPoolComponent is IInstanceLinkedComponent {
|
16
16
|
|
17
17
|
error ErrorPoolNotBundleOwner(NftId bundleNftId, address caller);
|
18
18
|
error ErrorPoolNotPoolService(address caller);
|
19
|
-
|
20
19
|
error ErrorPoolApplicationBundleMismatch(NftId applicationNftId);
|
21
20
|
|
22
21
|
event LogPoolVerifiedByPool(address pool, NftId applicationNftId, Amount collateralizationAmount);
|
23
22
|
|
24
|
-
/// @dev increases the staked tokens by the specified amount
|
25
|
-
/// only the bundle owner may stake tokens
|
26
|
-
/// bundle MUST be in active or locked state
|
27
|
-
function stake(NftId bundleNftId, Amount amount) external;
|
28
|
-
|
29
|
-
/// @dev decreases the staked tokens by the specified amount
|
30
|
-
/// only the bundle owner may unstake tokens from the bundle
|
31
|
-
/// bundle MUST be in active, locked or closed state
|
32
|
-
function unstake(NftId bundleNftId, Amount amount) external;
|
33
|
-
|
34
|
-
/// @dev extends the bundle lifetime of the bundle by the specified time
|
35
|
-
/// only the bundle owner may extend the bundle's lifetime
|
36
|
-
/// bundle MUST be in active or locked state
|
37
|
-
function extend(NftId bundleNftId, Seconds lifetimeExtension) external;
|
38
|
-
|
39
|
-
/// @dev locks the specified bundle
|
40
|
-
/// a bundle to be locked MUST be in active state
|
41
|
-
/// locked bundles may not be used to collateralize any new policy
|
42
|
-
function lockBundle(NftId bundleNftId) external;
|
43
|
-
|
44
|
-
/// @dev unlocks the specified bundle
|
45
|
-
/// a bundle to be unlocked MUST be in locked state
|
46
|
-
function unlockBundle(NftId bundleNftId) external;
|
47
|
-
|
48
|
-
/// @dev close the specified bundle
|
49
|
-
/// a bundle to be closed MUST be in active or locked state
|
50
|
-
/// to close a bundle all all linked policies MUST be in closed state as well
|
51
|
-
/// closing a bundle finalizes the bundle bookkeeping including overall profit calculation
|
52
|
-
/// once a bundle is closed this action cannot be reversed
|
53
|
-
function close(NftId bundleNftId) external;
|
54
|
-
|
55
|
-
/// @dev sets the fee for the specified bundle
|
56
|
-
/// the fee is added on top of the poolFee and deducted from the premium amounts
|
57
|
-
/// via these fees individual bundler owner may earn income per policy in the context of peer to peer pools
|
58
|
-
function setBundleFee(
|
59
|
-
NftId bundleNftId,
|
60
|
-
Fee memory fee
|
61
|
-
) external;
|
62
|
-
|
63
|
-
/// @dev sets the maximum overall capital amound held by this pool
|
64
|
-
/// function may only be called by pool owner
|
65
|
-
function setMaxCapitalAmount(Amount maxCapitalAmount) external;
|
66
|
-
|
67
|
-
/// @dev sets the required role to create/own bundles
|
68
|
-
/// may only be called once after setting up a pool
|
69
|
-
/// may only be called by pool owner
|
70
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole) external;
|
71
|
-
|
72
|
-
/// @dev update pool fees to the specified values
|
73
|
-
/// pool fees: are deducted from the premium amount and goes to the pool owner
|
74
|
-
/// staking fees: are deducted from the staked tokens by a bundle owner and goes to the pool owner
|
75
|
-
/// performance fees: when a bundle is closed a bundle specific profit is calculated
|
76
|
-
/// the performance fee is deducted from this profit and goes to the pool owner
|
77
|
-
function setFees(
|
78
|
-
Fee memory poolFee,
|
79
|
-
Fee memory stakingFee,
|
80
|
-
Fee memory performanceFee
|
81
|
-
) external;
|
82
|
-
|
83
23
|
/// @dev this is a callback function that is called by the product service when underwriting a policy.
|
84
24
|
/// the pool has the option to check the details and object to underwriting by reverting.
|
85
25
|
/// the function is only called for "active" pools that ask to be involved/notified
|
@@ -106,9 +46,7 @@ interface IPoolComponent is IComponent {
|
|
106
46
|
view
|
107
47
|
returns (bool isMatching);
|
108
48
|
|
109
|
-
/// @dev returns pool specific infos for this pool
|
110
|
-
|
111
|
-
/// when not registered the function returns the info from the component contract
|
112
|
-
function getPoolInfo() external view returns (IComponents.PoolInfo memory info);
|
49
|
+
/// @dev returns initial pool specific infos for this pool
|
50
|
+
function getInitialPoolInfo() external view returns (IComponents.PoolInfo memory info);
|
113
51
|
|
114
52
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
5
|
import {Fee} from "../type/Fee.sol";
|
@@ -7,11 +7,13 @@ import {NftId} from "../type/NftId.sol";
|
|
7
7
|
import {PayoutId} from "../type/PayoutId.sol";
|
8
8
|
import {IBundle} from "../instance/module/IBundle.sol";
|
9
9
|
import {IInstance} from "../instance/IInstance.sol";
|
10
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
10
11
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
12
|
import {IService} from "../shared/IService.sol";
|
12
13
|
import {RoleId} from "../type/RoleId.sol";
|
13
14
|
import {Seconds} from "../type/Seconds.sol";
|
14
15
|
import {StateId} from "../type/StateId.sol";
|
16
|
+
import {UFixed} from "../type/UFixed.sol";
|
15
17
|
|
16
18
|
interface IPoolService is IService {
|
17
19
|
|
@@ -22,12 +24,8 @@ interface IPoolService is IService {
|
|
22
24
|
event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
23
25
|
|
24
26
|
error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
|
25
|
-
error ErrorPoolServiceBundlePoolMismatch(NftId bundlePoolNftId, NftId productPoolNftId);
|
26
27
|
error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
|
27
28
|
|
28
|
-
/// @dev registers a new pool with the registry service
|
29
|
-
function register(address poolAddress) external returns(NftId);
|
30
|
-
|
31
29
|
/// @dev defines the required role for bundle owners for the calling pool
|
32
30
|
/// default implementation returns PUBLIC ROLE
|
33
31
|
function setBundleOwnerRole(RoleId bundleOwnerRole) external;
|
@@ -50,17 +48,24 @@ interface IPoolService is IService {
|
|
50
48
|
/// may only be called by the policy service for unlocked pool components
|
51
49
|
function lockCollateral(
|
52
50
|
IInstance instance,
|
51
|
+
address token,
|
53
52
|
NftId productNftId,
|
54
53
|
NftId applicationNftId,
|
55
|
-
|
56
|
-
Amount
|
57
|
-
)
|
54
|
+
NftId bundleNftId,
|
55
|
+
Amount sumInsuredAmount // premium amount after product and distribution fees
|
56
|
+
)
|
57
|
+
external
|
58
|
+
returns (
|
59
|
+
Amount localCollateralAmount,
|
60
|
+
Amount totalCollateralAmount
|
61
|
+
);
|
58
62
|
|
59
63
|
|
60
64
|
/// @dev releases the remaining collateral linked to the specified policy
|
61
65
|
/// may only be called by the policy service for unlocked pool components
|
62
66
|
function releaseCollateral(
|
63
67
|
IInstance instance,
|
68
|
+
address token,
|
64
69
|
NftId policyNftId,
|
65
70
|
IPolicy.PolicyInfo memory policyInfo
|
66
71
|
) external;
|
@@ -71,6 +76,7 @@ interface IPoolService is IService {
|
|
71
76
|
/// may only be called by the claim service for unlocked pool components
|
72
77
|
function reduceCollateral(
|
73
78
|
IInstance instance,
|
79
|
+
address token,
|
74
80
|
NftId policyNftId,
|
75
81
|
IPolicy.PolicyInfo memory policyInfo,
|
76
82
|
Amount payoutAmount
|
@@ -98,8 +104,9 @@ interface IPoolService is IService {
|
|
98
104
|
/// may only be called by registered and unlocked pool components
|
99
105
|
function closeBundle(NftId bundleNftId) external;
|
100
106
|
|
107
|
+
|
101
108
|
/// @dev processes the sale of a bundle and track the pool fee and bundle fee amounts
|
102
|
-
function processSale(NftId bundleNftId, IPolicy.Premium memory premium
|
109
|
+
function processSale(NftId bundleNftId, IPolicy.Premium memory premium) external;
|
103
110
|
|
104
111
|
/// @dev increase stakes for bundle
|
105
112
|
/// staking fees will be deducted by the pool service from the staking amount
|
@@ -111,4 +118,33 @@ interface IPoolService is IService {
|
|
111
118
|
/// performance fees will be deducted by the pool service from the staking amount
|
112
119
|
/// may only be called by registered and unlocked pool components
|
113
120
|
// function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
|
121
|
+
|
122
|
+
|
123
|
+
/// @dev calulate required collateral for the provided parameters
|
124
|
+
function calculateRequiredCollateral(
|
125
|
+
InstanceReader instanceReader,
|
126
|
+
NftId productNftId,
|
127
|
+
Amount sumInsuredAmount
|
128
|
+
)
|
129
|
+
external
|
130
|
+
view
|
131
|
+
returns(
|
132
|
+
Amount localCollateralAmount,
|
133
|
+
Amount totalCollateralAmount
|
134
|
+
);
|
135
|
+
|
136
|
+
|
137
|
+
/// @dev calulate required collateral for the provided parameters
|
138
|
+
function calculateRequiredCollateral(
|
139
|
+
UFixed collateralizationLevel,
|
140
|
+
UFixed retentionLevel,
|
141
|
+
Amount sumInsuredAmount
|
142
|
+
)
|
143
|
+
external
|
144
|
+
pure
|
145
|
+
returns(
|
146
|
+
Amount localCollateralAmount,
|
147
|
+
Amount totalCollateralAmount
|
148
|
+
);
|
149
|
+
|
114
150
|
}
|