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