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