@etherisc/gif-next 0.0.2-fca9315-260 → 0.0.2-fd2113c-488
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 +10 -14
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +373 -368
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +827 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +61 -116
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +239 -1554
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +373 -190
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +430 -2524
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +661 -341
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +558 -362
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +389 -104
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3598 -0
- 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 +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +294 -304
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +273 -285
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +211 -230
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +251 -297
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +270 -215
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +358 -312
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IProductService.sol/IProductService.json} +126 -167
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → product/Product.sol/Product.json} +865 -216
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +203 -21
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +360 -218
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +440 -36
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +506 -254
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +352 -95
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +769 -98
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +349 -82
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +330 -283
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +178 -242
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → shared/IComponent.sol/IComponent.json} +213 -230
- 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/{components/Component.sol/Component.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +210 -161
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -30
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +84 -154
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +108 -35
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -75
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +131 -60
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +188 -157
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
- 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/shared/Versionable.sol/Versionable.json +2 -152
- 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 +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
- 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 +2261 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- 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 +4 -0
- package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
- 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 +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- 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 +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
- package/contracts/distribution/Distribution.sol +261 -0
- package/contracts/distribution/DistributionService.sol +297 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/distribution/IDistributionComponent.sol +66 -0
- package/contracts/distribution/IDistributionService.sol +81 -0
- package/contracts/instance/BundleManager.sol +15 -14
- package/contracts/instance/IInstance.sol +61 -46
- package/contracts/instance/IInstanceService.sol +76 -20
- package/contracts/instance/Instance.sol +176 -182
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
- package/contracts/instance/InstanceReader.sol +159 -60
- package/contracts/instance/InstanceService.sol +313 -306
- package/contracts/instance/InstanceServiceManager.sol +12 -22
- package/contracts/instance/InstanceStore.sol +269 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -16
- package/contracts/instance/module/IAccess.sol +19 -21
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +52 -0
- package/contracts/instance/module/IDistribution.sol +7 -4
- package/contracts/instance/module/IPolicy.sol +56 -17
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
- package/contracts/oracle/IOracle.sol +20 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +145 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/pool/IBundleService.sol +106 -0
- package/contracts/pool/IPoolComponent.sol +112 -0
- package/contracts/pool/IPoolService.sol +150 -0
- package/contracts/pool/Pool.sol +299 -0
- package/contracts/pool/PoolService.sol +452 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/ClaimService.sol +442 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/product/IPolicyService.sol +78 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +42 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +475 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +300 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/product/Product.sol +377 -0
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +16 -1
- package/contracts/registry/IRegistry.sol +47 -21
- package/contracts/registry/IRegistryService.sol +42 -38
- package/contracts/registry/IServiceAuthorization.sol +35 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +227 -97
- package/contracts/registry/RegistryAdmin.sol +333 -0
- package/contracts/registry/RegistryService.sol +108 -104
- package/contracts/registry/RegistryServiceManager.sol +22 -31
- package/contracts/registry/ReleaseManager.sol +398 -203
- package/contracts/registry/ServiceAuthorization.sol +86 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +263 -60
- package/contracts/shared/AccessAdmin.sol +759 -0
- package/contracts/shared/AccessManagerCustom.sol +741 -0
- package/contracts/shared/AccessManagerExtended.sol +481 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +281 -0
- package/contracts/shared/ComponentService.sol +617 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +15 -13
- package/contracts/shared/IAccessAdmin.sol +168 -0
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/shared/IComponent.sol +70 -0
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +13 -12
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +3 -3
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +14 -5
- package/contracts/shared/IVersionable.sol +5 -48
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +144 -0
- package/contracts/shared/KeyValueStore.sol +127 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +37 -7
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +59 -91
- package/contracts/shared/PolicyHolder.sol +102 -0
- package/contracts/shared/ProxyManager.sol +131 -26
- package/contracts/shared/Registerable.sol +19 -30
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +54 -31
- package/contracts/shared/TokenHandler.sol +37 -6
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +153 -0
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +513 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +411 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +613 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +128 -0
- package/contracts/{types → type}/Blocknumber.sol +21 -3
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +33 -23
- package/contracts/{types → type}/NftId.sol +21 -15
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +241 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +5 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +201 -0
- package/contracts/type/Seconds.sol +81 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +34 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +23 -14
- package/contracts/{types → type}/UFixed.sol +1 -0
- package/contracts/{types → type}/Version.sol +2 -1
- package/package.json +5 -5
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +0 -455
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1034
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- 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 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- 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/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1102
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -449
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -772
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -437
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1227
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -505
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -806
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -437
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -856
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -437
- 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/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -313
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -608
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/contracts/components/Component.sol +0 -216
- package/contracts/components/Distribution.sol +0 -150
- package/contracts/components/IComponent.sol +0 -43
- package/contracts/components/IDistributionComponent.sol +0 -47
- package/contracts/components/IPoolComponent.sol +0 -60
- package/contracts/components/IProductComponent.sol +0 -39
- package/contracts/components/Pool.sol +0 -227
- package/contracts/components/Product.sol +0 -265
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/InstanceAccessManager.sol +0 -298
- package/contracts/instance/base/ComponentService.sol +0 -134
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/module/ISetup.sol +0 -46
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/BundleService.sol +0 -293
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/DistributionService.sol +0 -106
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -44
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPolicyService.sol +0 -94
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -538
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -110
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -234
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/test/Usdc.sol +0 -26
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -152
- package/contracts/types/RoleId.sol +0 -90
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,106 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {NftId} from "../type/NftId.sol";
|
6
|
+
import {Fee} from "../type/Fee.sol";
|
7
|
+
import {IService} from "../shared/IService.sol";
|
8
|
+
import {IBundle} from "../instance/module/IBundle.sol";
|
9
|
+
import {IInstance} from "../instance/IInstance.sol";
|
10
|
+
import {Seconds} from "../type/Seconds.sol";
|
11
|
+
import {StateId} from "../type/StateId.sol";
|
12
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
13
|
+
|
14
|
+
interface IBundleService is IService {
|
15
|
+
|
16
|
+
event LogBundleServiceBundleActivated(NftId bundleNftId);
|
17
|
+
event LogBundleServiceBundleLocked(NftId bundleNftId);
|
18
|
+
|
19
|
+
error ErrorBundleServiceInsufficientAllowance(address bundleOwner, address tokenHandlerAddress, Amount amount);
|
20
|
+
error ErrorBundleServiceBundleNotOpen(NftId bundleNftId, StateId state, Timestamp expiredAt);
|
21
|
+
error ErrorBundleServiceCapacityInsufficient(NftId bundleNftId, Amount capacityAmount, Amount collateralAmount);
|
22
|
+
error ErrorBundleServiceBundleWithOpenPolicies(NftId bundleNftId, uint256 openPoliciesCount);
|
23
|
+
|
24
|
+
error ErrorBundleServiceBundleUnknown(NftId bundleNftId);
|
25
|
+
error ErrorBundleServiceBundlePoolMismatch(NftId bundleNftId, NftId expectedPool, NftId actualPool);
|
26
|
+
|
27
|
+
error ErrorBundleServicePolicyNotCloseable(NftId policyNftId);
|
28
|
+
|
29
|
+
/// @dev create a new bundle for the specified attributes
|
30
|
+
/// may only be called by pool service
|
31
|
+
function create(
|
32
|
+
IInstance instance, // instance relevant for bundle
|
33
|
+
NftId poolNftId, // the pool the bundle will be linked to
|
34
|
+
address owner, // initial bundle owner
|
35
|
+
Fee memory fee, // fees deducted from premium that go to bundle owner
|
36
|
+
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
37
|
+
Seconds lifetime, // initial duration for which new policies are covered
|
38
|
+
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
39
|
+
)
|
40
|
+
external
|
41
|
+
returns(NftId bundleNftId); // the nft id of the newly created bundle
|
42
|
+
|
43
|
+
|
44
|
+
/// @dev increase bundle stakes by the specified amount
|
45
|
+
/// may only be called by the bundle owner
|
46
|
+
// function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
|
47
|
+
|
48
|
+
// function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
|
49
|
+
|
50
|
+
/// @dev locks the specified bundle, locked bundles are not available to collateralize new policies
|
51
|
+
/// only active bundles may be locked
|
52
|
+
/// may only be called by registered and unlocked pool components
|
53
|
+
function lock(NftId bundleNftId) external;
|
54
|
+
|
55
|
+
/// @dev activates the specified bundle
|
56
|
+
/// only locked bundles may be unlocked
|
57
|
+
/// may only be called by registered and unlocked pool components
|
58
|
+
function unlock(NftId bundleNftId) external;
|
59
|
+
|
60
|
+
/// @dev closes the specified bundle
|
61
|
+
/// only open bundles (active or locked) may be closed
|
62
|
+
/// to close a bundle it may not have any non-closed polices attached to it
|
63
|
+
/// may only be called by registered and unlocked pool components
|
64
|
+
function close(
|
65
|
+
IInstance instance,
|
66
|
+
NftId bundleNftId
|
67
|
+
) external;
|
68
|
+
|
69
|
+
/// @dev set bundle fee to provided value
|
70
|
+
/// may only be called by registered and unlocked pool components
|
71
|
+
function setFee(
|
72
|
+
NftId bundleNftId,
|
73
|
+
Fee memory fee
|
74
|
+
) external;
|
75
|
+
|
76
|
+
|
77
|
+
/// @dev locks the specified collateral in the bundle
|
78
|
+
/// the locked collateral is added to the bundle locked capital
|
79
|
+
/// the bundles' fees are updated with the fees for this premium
|
80
|
+
/// the premium (minus bundle fee) is added to the bundle capital
|
81
|
+
/// may only be called by pool service
|
82
|
+
function lockCollateral(
|
83
|
+
IInstance instance,
|
84
|
+
NftId policyNftId,
|
85
|
+
NftId bundleNftId,
|
86
|
+
Amount collateralAmount
|
87
|
+
) external;
|
88
|
+
|
89
|
+
|
90
|
+
/// @dev releases the specified collateral in the bundle
|
91
|
+
/// may only be called by pool service
|
92
|
+
function releaseCollateral(
|
93
|
+
IInstance instance,
|
94
|
+
NftId policyNftId,
|
95
|
+
NftId bundleNftId,
|
96
|
+
Amount collateralAmount
|
97
|
+
) external;
|
98
|
+
|
99
|
+
/// @dev unlink policy from bundle
|
100
|
+
/// policy may only be unlinked if policy is closeable
|
101
|
+
/// may only be called by pool service
|
102
|
+
function unlinkPolicy(
|
103
|
+
IInstance instance,
|
104
|
+
NftId policyNftId
|
105
|
+
) external;
|
106
|
+
}
|
@@ -0,0 +1,112 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {Fee} from "../type/Fee.sol";
|
6
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
7
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
8
|
+
import {NftId} from "../type/NftId.sol";
|
9
|
+
import {RoleId} from "../type/RoleId.sol";
|
10
|
+
import {Seconds} from "../type/Seconds.sol";
|
11
|
+
import {UFixed} from "../type/UFixed.sol";
|
12
|
+
|
13
|
+
/// @dev pool components hold and manage the collateral to cover active policies
|
14
|
+
/// pools come in different flavors
|
15
|
+
interface IPoolComponent is IInstanceLinkedComponent {
|
16
|
+
|
17
|
+
error ErrorPoolNotBundleOwner(NftId bundleNftId, address caller);
|
18
|
+
error ErrorPoolNotPoolService(address caller);
|
19
|
+
|
20
|
+
error ErrorPoolApplicationBundleMismatch(NftId applicationNftId);
|
21
|
+
|
22
|
+
event LogPoolVerifiedByPool(address pool, NftId applicationNftId, Amount collateralizationAmount);
|
23
|
+
|
24
|
+
/// @dev increases the staked tokens by the specified amount
|
25
|
+
/// only the bundle owner may stake tokens
|
26
|
+
/// bundle MUST be in active or locked state
|
27
|
+
function stake(NftId bundleNftId, Amount amount) external;
|
28
|
+
|
29
|
+
/// @dev decreases the staked tokens by the specified amount
|
30
|
+
/// only the bundle owner may unstake tokens from the bundle
|
31
|
+
/// bundle MUST be in active, locked or closed state
|
32
|
+
function unstake(NftId bundleNftId, Amount amount) external;
|
33
|
+
|
34
|
+
/// @dev extends the bundle lifetime of the bundle by the specified time
|
35
|
+
/// only the bundle owner may extend the bundle's lifetime
|
36
|
+
/// bundle MUST be in active or locked state
|
37
|
+
function extend(NftId bundleNftId, Seconds lifetimeExtension) external;
|
38
|
+
|
39
|
+
/// @dev locks the specified bundle
|
40
|
+
/// a bundle to be locked MUST be in active state
|
41
|
+
/// locked bundles may not be used to collateralize any new policy
|
42
|
+
function lockBundle(NftId bundleNftId) external;
|
43
|
+
|
44
|
+
/// @dev unlocks the specified bundle
|
45
|
+
/// a bundle to be unlocked MUST be in locked state
|
46
|
+
function unlockBundle(NftId bundleNftId) external;
|
47
|
+
|
48
|
+
/// @dev close the specified bundle
|
49
|
+
/// a bundle to be closed MUST be in active or locked state
|
50
|
+
/// to close a bundle all all linked policies MUST be in closed state as well
|
51
|
+
/// closing a bundle finalizes the bundle bookkeeping including overall profit calculation
|
52
|
+
/// once a bundle is closed this action cannot be reversed
|
53
|
+
function close(NftId bundleNftId) external;
|
54
|
+
|
55
|
+
/// @dev sets the fee for the specified bundle
|
56
|
+
/// the fee is added on top of the poolFee and deducted from the premium amounts
|
57
|
+
/// via these fees individual bundler owner may earn income per policy in the context of peer to peer pools
|
58
|
+
function setBundleFee(
|
59
|
+
NftId bundleNftId,
|
60
|
+
Fee memory fee
|
61
|
+
) external;
|
62
|
+
|
63
|
+
/// @dev sets the maximum overall capital amound held by this pool
|
64
|
+
/// function may only be called by pool owner
|
65
|
+
function setMaxCapitalAmount(Amount maxCapitalAmount) external;
|
66
|
+
|
67
|
+
/// @dev sets the required role to create/own bundles
|
68
|
+
/// may only be called once after setting up a pool
|
69
|
+
/// may only be called by pool owner
|
70
|
+
function setBundleOwnerRole(RoleId bundleOwnerRole) external;
|
71
|
+
|
72
|
+
/// @dev update pool fees to the specified values
|
73
|
+
/// pool fees: are deducted from the premium amount and goes to the pool owner
|
74
|
+
/// staking fees: are deducted from the staked tokens by a bundle owner and goes to the pool owner
|
75
|
+
/// performance fees: when a bundle is closed a bundle specific profit is calculated
|
76
|
+
/// the performance fee is deducted from this profit and goes to the pool owner
|
77
|
+
function setFees(
|
78
|
+
Fee memory poolFee,
|
79
|
+
Fee memory stakingFee,
|
80
|
+
Fee memory performanceFee
|
81
|
+
) external;
|
82
|
+
|
83
|
+
/// @dev this is a callback function that is called by the product service when underwriting a policy.
|
84
|
+
/// the pool has the option to check the details and object to underwriting by reverting.
|
85
|
+
/// the function is only called for "active" pools that ask to be involved/notified
|
86
|
+
/// by product related state changes.
|
87
|
+
function verifyApplication(
|
88
|
+
NftId applicationNftId,
|
89
|
+
bytes memory applicationData,
|
90
|
+
NftId bundleNftId,
|
91
|
+
bytes memory bundleFilter,
|
92
|
+
Amount collateralizationAmount
|
93
|
+
) external;
|
94
|
+
|
95
|
+
/// @dev returns true iff the application matches with the bundle
|
96
|
+
/// this is a callback function that is only called if a pool declares itself as a verifying pool
|
97
|
+
/// default implementation returns true
|
98
|
+
function applicationMatchesBundle(
|
99
|
+
NftId applicationNftId,
|
100
|
+
bytes memory applicationData,
|
101
|
+
NftId bundleNftId,
|
102
|
+
bytes memory bundleFilter,
|
103
|
+
Amount collateralizationAmount
|
104
|
+
)
|
105
|
+
external
|
106
|
+
view
|
107
|
+
returns (bool isMatching);
|
108
|
+
|
109
|
+
/// @dev returns initial pool specific infos for this pool
|
110
|
+
function getInitialPoolInfo() external view returns (IComponents.PoolInfo memory info);
|
111
|
+
|
112
|
+
}
|
@@ -0,0 +1,150 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {Fee} from "../type/Fee.sol";
|
6
|
+
import {NftId} from "../type/NftId.sol";
|
7
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
8
|
+
import {IBundle} from "../instance/module/IBundle.sol";
|
9
|
+
import {IInstance} from "../instance/IInstance.sol";
|
10
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
11
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
12
|
+
import {IService} from "../shared/IService.sol";
|
13
|
+
import {RoleId} from "../type/RoleId.sol";
|
14
|
+
import {Seconds} from "../type/Seconds.sol";
|
15
|
+
import {StateId} from "../type/StateId.sol";
|
16
|
+
import {UFixed} from "../type/UFixed.sol";
|
17
|
+
|
18
|
+
interface IPoolService is IService {
|
19
|
+
|
20
|
+
event LogPoolServiceMaxCapitalAmountUpdated(NftId poolNftId, Amount previousMaxCapitalAmount, Amount currentMaxCapitalAmount);
|
21
|
+
event LogPoolServiceBundleOwnerRoleSet(NftId poolNftId, RoleId bundleOwnerRole);
|
22
|
+
|
23
|
+
event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
24
|
+
event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
25
|
+
|
26
|
+
error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
|
27
|
+
error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
|
28
|
+
|
29
|
+
/// @dev defines the required role for bundle owners for the calling pool
|
30
|
+
/// default implementation returns PUBLIC ROLE
|
31
|
+
function setBundleOwnerRole(RoleId bundleOwnerRole) external;
|
32
|
+
|
33
|
+
/// @dev sets the max capital amount for the calling pool
|
34
|
+
function setMaxCapitalAmount(Amount maxCapitalAmount) external;
|
35
|
+
|
36
|
+
/// @dev set pool sepecific fees
|
37
|
+
function setFees(
|
38
|
+
Fee memory poolFee,
|
39
|
+
Fee memory stakingFee,
|
40
|
+
Fee memory performanceFee
|
41
|
+
) external;
|
42
|
+
|
43
|
+
|
44
|
+
/// @dev locks required collateral to cover the specified application (and turn it into a policy)
|
45
|
+
/// - retention level == 1: the full collateral amount will be locked by the specified bundle
|
46
|
+
/// - retention level < 1: a part of the coverage is provided by the specified bundle, the rest by the pool component
|
47
|
+
/// in which case the pool component might hold a re-insurance policy
|
48
|
+
/// may only be called by the policy service for unlocked pool components
|
49
|
+
function lockCollateral(
|
50
|
+
IInstance instance,
|
51
|
+
address token,
|
52
|
+
NftId productNftId,
|
53
|
+
NftId applicationNftId,
|
54
|
+
NftId bundleNftId,
|
55
|
+
Amount sumInsuredAmount // premium amount after product and distribution fees
|
56
|
+
)
|
57
|
+
external
|
58
|
+
returns (
|
59
|
+
Amount localCollateralAmount,
|
60
|
+
Amount totalCollateralAmount
|
61
|
+
);
|
62
|
+
|
63
|
+
|
64
|
+
/// @dev releases the remaining collateral linked to the specified policy
|
65
|
+
/// may only be called by the policy service for unlocked pool components
|
66
|
+
function releaseCollateral(
|
67
|
+
IInstance instance,
|
68
|
+
address token,
|
69
|
+
NftId policyNftId,
|
70
|
+
IPolicy.PolicyInfo memory policyInfo
|
71
|
+
) external;
|
72
|
+
|
73
|
+
|
74
|
+
/// @dev reduces the locked collateral in the bundle associated with the specified policy
|
75
|
+
/// every payout of a policy reduces the collateral by the payout amount
|
76
|
+
/// may only be called by the claim service for unlocked pool components
|
77
|
+
function reduceCollateral(
|
78
|
+
IInstance instance,
|
79
|
+
address token,
|
80
|
+
NftId policyNftId,
|
81
|
+
IPolicy.PolicyInfo memory policyInfo,
|
82
|
+
Amount payoutAmount
|
83
|
+
) external;
|
84
|
+
|
85
|
+
|
86
|
+
/// @dev create a new bundle for the provided parameters
|
87
|
+
/// staking fees will be deducted by the pool service from the staking amount
|
88
|
+
/// may only be called by registered and unlocked pool components
|
89
|
+
function createBundle(
|
90
|
+
address owner, // initial bundle owner
|
91
|
+
Fee memory fee, // fees deducted from premium that go to bundle owner
|
92
|
+
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
93
|
+
Seconds lifetime, // initial duration for which new policies are covered
|
94
|
+
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
95
|
+
)
|
96
|
+
external
|
97
|
+
returns(NftId bundleNftId); // the nft id of the newly created bundle
|
98
|
+
|
99
|
+
|
100
|
+
/// @dev closes the specified bundle
|
101
|
+
/// only open bundles (active or locked) may be closed
|
102
|
+
/// to close a bundle it may not have any non-closed polices attached to it
|
103
|
+
/// bundle fees and remaining capital (after deduction of the performance fee) will be transferred to the bundle owner
|
104
|
+
/// may only be called by registered and unlocked pool components
|
105
|
+
function closeBundle(NftId bundleNftId) external;
|
106
|
+
|
107
|
+
|
108
|
+
/// @dev processes the sale of a bundle and track the pool fee and bundle fee amounts
|
109
|
+
function processSale(NftId bundleNftId, IPolicy.Premium memory premium) external;
|
110
|
+
|
111
|
+
/// @dev increase stakes for bundle
|
112
|
+
/// staking fees will be deducted by the pool service from the staking amount
|
113
|
+
/// may only be called by registered and unlocked pool components
|
114
|
+
// function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
|
115
|
+
|
116
|
+
|
117
|
+
/// @dev decrease stakes for bundle
|
118
|
+
/// performance fees will be deducted by the pool service from the staking amount
|
119
|
+
/// may only be called by registered and unlocked pool components
|
120
|
+
// function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
|
121
|
+
|
122
|
+
|
123
|
+
/// @dev calulate required collateral for the provided parameters
|
124
|
+
function calculateRequiredCollateral(
|
125
|
+
InstanceReader instanceReader,
|
126
|
+
NftId productNftId,
|
127
|
+
Amount sumInsuredAmount
|
128
|
+
)
|
129
|
+
external
|
130
|
+
view
|
131
|
+
returns(
|
132
|
+
Amount localCollateralAmount,
|
133
|
+
Amount totalCollateralAmount
|
134
|
+
);
|
135
|
+
|
136
|
+
|
137
|
+
/// @dev calulate required collateral for the provided parameters
|
138
|
+
function calculateRequiredCollateral(
|
139
|
+
UFixed collateralizationLevel,
|
140
|
+
UFixed retentionLevel,
|
141
|
+
Amount sumInsuredAmount
|
142
|
+
)
|
143
|
+
external
|
144
|
+
pure
|
145
|
+
returns(
|
146
|
+
Amount localCollateralAmount,
|
147
|
+
Amount totalCollateralAmount
|
148
|
+
);
|
149
|
+
|
150
|
+
}
|
@@ -0,0 +1,299 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
|
+
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
6
|
+
import {Fee, FeeLib} from "../type/Fee.sol";
|
7
|
+
import {IBundleService} from "./IBundleService.sol";
|
8
|
+
import {IPoolComponent} from "./IPoolComponent.sol";
|
9
|
+
import {IPoolService} from "./IPoolService.sol";
|
10
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
11
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
12
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
13
|
+
import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
|
14
|
+
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
15
|
+
import {Seconds} from "../type/Seconds.sol";
|
16
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
17
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
18
|
+
|
19
|
+
abstract contract Pool is
|
20
|
+
InstanceLinkedComponent,
|
21
|
+
IPoolComponent
|
22
|
+
{
|
23
|
+
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.Pool")) - 1)) & ~bytes32(uint256(0xff));
|
24
|
+
bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
|
25
|
+
|
26
|
+
struct PoolStorage {
|
27
|
+
IComponentService _componentService;
|
28
|
+
IPoolService _poolService;
|
29
|
+
IBundleService _bundleService;
|
30
|
+
}
|
31
|
+
|
32
|
+
|
33
|
+
modifier onlyBundleOwner(NftId bundleNftId) {
|
34
|
+
if(msg.sender != getRegistry().ownerOf(bundleNftId)) {
|
35
|
+
revert ErrorPoolNotBundleOwner(bundleNftId, msg.sender);
|
36
|
+
}
|
37
|
+
_;
|
38
|
+
}
|
39
|
+
|
40
|
+
|
41
|
+
modifier onlyPoolService() {
|
42
|
+
if(msg.sender != address(_getPoolStorage()._poolService)) {
|
43
|
+
revert ErrorPoolNotPoolService(msg.sender);
|
44
|
+
}
|
45
|
+
_;
|
46
|
+
}
|
47
|
+
|
48
|
+
|
49
|
+
function initializePool(
|
50
|
+
address registry,
|
51
|
+
NftId instanceNftId,
|
52
|
+
string memory name,
|
53
|
+
address token,
|
54
|
+
bool isInterceptingNftTransfers,
|
55
|
+
address initialOwner,
|
56
|
+
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
57
|
+
bytes memory componentData // component specifidc data
|
58
|
+
)
|
59
|
+
public
|
60
|
+
virtual
|
61
|
+
onlyInitializing()
|
62
|
+
{
|
63
|
+
initializeInstanceLinkedComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, registryData, componentData);
|
64
|
+
|
65
|
+
PoolStorage storage $ = _getPoolStorage();
|
66
|
+
$._poolService = IPoolService(_getServiceAddress(POOL()));
|
67
|
+
$._bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
68
|
+
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
69
|
+
|
70
|
+
registerInterface(type(IPoolComponent).interfaceId);
|
71
|
+
}
|
72
|
+
|
73
|
+
|
74
|
+
function register()
|
75
|
+
external
|
76
|
+
virtual
|
77
|
+
onlyOwner()
|
78
|
+
{
|
79
|
+
_getPoolStorage()._componentService.registerPool();
|
80
|
+
}
|
81
|
+
|
82
|
+
|
83
|
+
function stake(
|
84
|
+
NftId bundleNftId,
|
85
|
+
Amount amount
|
86
|
+
)
|
87
|
+
public
|
88
|
+
virtual
|
89
|
+
restricted()
|
90
|
+
onlyBundleOwner(bundleNftId)
|
91
|
+
{
|
92
|
+
// TODO add implementation
|
93
|
+
}
|
94
|
+
|
95
|
+
|
96
|
+
function unstake(
|
97
|
+
NftId bundleNftId,
|
98
|
+
Amount amount
|
99
|
+
)
|
100
|
+
public
|
101
|
+
virtual
|
102
|
+
restricted()
|
103
|
+
onlyBundleOwner(bundleNftId)
|
104
|
+
{
|
105
|
+
// TODO add implementation
|
106
|
+
}
|
107
|
+
|
108
|
+
|
109
|
+
function extend(
|
110
|
+
NftId bundleNftId,
|
111
|
+
Seconds lifetimeExtension
|
112
|
+
)
|
113
|
+
public
|
114
|
+
virtual
|
115
|
+
restricted()
|
116
|
+
onlyBundleOwner(bundleNftId)
|
117
|
+
{
|
118
|
+
// TODO add implementation
|
119
|
+
}
|
120
|
+
|
121
|
+
|
122
|
+
function lockBundle(NftId bundleNftId)
|
123
|
+
public
|
124
|
+
virtual
|
125
|
+
//restricted() // TODO consider adding this back
|
126
|
+
onlyBundleOwner(bundleNftId)
|
127
|
+
{
|
128
|
+
_getPoolStorage()._bundleService.lock(bundleNftId);
|
129
|
+
}
|
130
|
+
|
131
|
+
|
132
|
+
function unlockBundle(NftId bundleNftId)
|
133
|
+
public
|
134
|
+
virtual
|
135
|
+
//restricted()
|
136
|
+
onlyBundleOwner(bundleNftId)
|
137
|
+
{
|
138
|
+
_getPoolStorage()._bundleService.unlock(bundleNftId);
|
139
|
+
}
|
140
|
+
|
141
|
+
|
142
|
+
function close(NftId bundleNftId)
|
143
|
+
public
|
144
|
+
virtual
|
145
|
+
//restricted()
|
146
|
+
onlyBundleOwner(bundleNftId)
|
147
|
+
{
|
148
|
+
_getPoolStorage()._poolService.closeBundle(bundleNftId);
|
149
|
+
}
|
150
|
+
|
151
|
+
|
152
|
+
function setBundleFee(
|
153
|
+
NftId bundleNftId,
|
154
|
+
Fee memory fee
|
155
|
+
)
|
156
|
+
public
|
157
|
+
virtual
|
158
|
+
//restricted()
|
159
|
+
onlyBundleOwner(bundleNftId)
|
160
|
+
{
|
161
|
+
_getPoolStorage()._bundleService.setFee(bundleNftId, fee);
|
162
|
+
}
|
163
|
+
|
164
|
+
|
165
|
+
function setMaxCapitalAmount(Amount maxCapitalAmount)
|
166
|
+
public
|
167
|
+
virtual
|
168
|
+
restricted()
|
169
|
+
onlyOwner()
|
170
|
+
{
|
171
|
+
_getPoolStorage()._poolService.setMaxCapitalAmount(maxCapitalAmount);
|
172
|
+
}
|
173
|
+
|
174
|
+
|
175
|
+
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
176
|
+
public
|
177
|
+
virtual
|
178
|
+
restricted()
|
179
|
+
onlyOwner()
|
180
|
+
{
|
181
|
+
_getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
|
182
|
+
}
|
183
|
+
|
184
|
+
|
185
|
+
function setFees(
|
186
|
+
Fee memory poolFee,
|
187
|
+
Fee memory stakingFee,
|
188
|
+
Fee memory performanceFee
|
189
|
+
)
|
190
|
+
public
|
191
|
+
virtual
|
192
|
+
restricted()
|
193
|
+
onlyOwner()
|
194
|
+
{
|
195
|
+
_getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
|
196
|
+
}
|
197
|
+
|
198
|
+
|
199
|
+
/// @dev see {IPool.verifyApplication}
|
200
|
+
function verifyApplication(
|
201
|
+
NftId applicationNftId,
|
202
|
+
bytes memory applicationData,
|
203
|
+
NftId bundleNftId,
|
204
|
+
bytes memory bundleFilter,
|
205
|
+
Amount collateralizationAmount
|
206
|
+
)
|
207
|
+
public
|
208
|
+
virtual
|
209
|
+
restricted()
|
210
|
+
{
|
211
|
+
if(!applicationMatchesBundle(
|
212
|
+
applicationNftId,
|
213
|
+
applicationData,
|
214
|
+
bundleNftId,
|
215
|
+
bundleFilter,
|
216
|
+
collateralizationAmount)
|
217
|
+
)
|
218
|
+
{
|
219
|
+
revert ErrorPoolApplicationBundleMismatch(applicationNftId);
|
220
|
+
}
|
221
|
+
|
222
|
+
emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
|
223
|
+
}
|
224
|
+
|
225
|
+
|
226
|
+
/// @dev see {IPoolComponent.applicationMatchesBundle}
|
227
|
+
/// Override this function to implement any custom application verification
|
228
|
+
/// Default implementation always returns true
|
229
|
+
function applicationMatchesBundle(
|
230
|
+
NftId applicationNftId,
|
231
|
+
bytes memory applicationData,
|
232
|
+
NftId bundleNftId,
|
233
|
+
bytes memory bundleFilter,
|
234
|
+
Amount collateralizationAmount
|
235
|
+
)
|
236
|
+
public
|
237
|
+
view
|
238
|
+
virtual override
|
239
|
+
returns (bool isMatching)
|
240
|
+
{
|
241
|
+
return true;
|
242
|
+
}
|
243
|
+
|
244
|
+
|
245
|
+
function getInitialPoolInfo()
|
246
|
+
public
|
247
|
+
virtual
|
248
|
+
view
|
249
|
+
returns (IComponents.PoolInfo memory poolInfo)
|
250
|
+
{
|
251
|
+
return IComponents.PoolInfo(
|
252
|
+
NftIdLib.zero(), // will be set when GIF registers the related product
|
253
|
+
PUBLIC_ROLE(), // bundleOwnerRole
|
254
|
+
AmountLib.max(), // maxCapitalAmount,
|
255
|
+
isNftInterceptor(), // isInterceptingBundleTransfers
|
256
|
+
false, // isExternallyManaged,
|
257
|
+
false, // isVerifyingApplications,
|
258
|
+
UFixedLib.toUFixed(1), // collateralizationLevel,
|
259
|
+
UFixedLib.toUFixed(1), // retentionLevel,
|
260
|
+
FeeLib.zero(), // initialPoolFee,
|
261
|
+
FeeLib.zero(), // initialStakingFee,
|
262
|
+
FeeLib.zero() // initialPerformanceFee,
|
263
|
+
);
|
264
|
+
}
|
265
|
+
|
266
|
+
// Internals
|
267
|
+
|
268
|
+
function _createBundle(
|
269
|
+
address bundleOwner,
|
270
|
+
Fee memory fee,
|
271
|
+
Amount amount,
|
272
|
+
Seconds lifetime,
|
273
|
+
bytes memory filter
|
274
|
+
)
|
275
|
+
internal
|
276
|
+
returns(NftId bundleNftId)
|
277
|
+
{
|
278
|
+
bundleNftId = _getPoolStorage()._poolService.createBundle(
|
279
|
+
bundleOwner,
|
280
|
+
fee,
|
281
|
+
amount,
|
282
|
+
lifetime,
|
283
|
+
filter);
|
284
|
+
|
285
|
+
// TODO add logging
|
286
|
+
}
|
287
|
+
|
288
|
+
// TODO remove function once this is no longer used to produce contract locations on the fly ...
|
289
|
+
function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
|
290
|
+
return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
|
291
|
+
}
|
292
|
+
|
293
|
+
|
294
|
+
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
295
|
+
assembly {
|
296
|
+
$.slot := POOL_STORAGE_LOCATION_V1
|
297
|
+
}
|
298
|
+
}
|
299
|
+
}
|