@etherisc/gif-next 0.0.2-ce2fc91-485 → 0.0.2-ce3fd5e-324
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 +249 -39
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1376 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +780 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +1000 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +840 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +327 -1590
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +616 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +478 -1771
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1348 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1569 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +979 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +656 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2837 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +190 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +94 -127
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +138 -249
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +38 -13
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +237 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
- package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +696 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +735 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1095 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1077 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1407 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +708 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +648 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1376 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +748 -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} +250 -234
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +743 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +651 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +510 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +861 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IProductService.sol/IProductService.json} +222 -156
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +740 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +688 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1198 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +640 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +199 -12
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +485 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +858 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +491 -105
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1150 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +657 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +559 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +485 -0
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +873 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +631 -0
- 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/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +636 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +125 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +189 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -37
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +157 -156
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +238 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +302 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +569 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +245 -27
- 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 +4 -0
- package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +256 -220
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +114 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +523 -0
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +628 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +767 -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 +281 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
- 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/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- 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/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +166 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
- 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/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +156 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -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/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +280 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
- package/contracts/distribution/Distribution.sol +285 -0
- package/contracts/distribution/DistributionService.sol +349 -0
- package/contracts/distribution/DistributionServiceManager.sol +51 -0
- package/contracts/distribution/IDistributionComponent.sol +71 -0
- package/contracts/distribution/IDistributionService.sol +87 -0
- package/contracts/instance/BundleManager.sol +126 -0
- package/contracts/instance/IInstance.sol +67 -42
- package/contracts/instance/IInstanceService.sol +73 -0
- package/contracts/instance/Instance.sol +213 -52
- package/contracts/instance/InstanceAccessManager.sol +543 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
- package/contracts/instance/InstanceReader.sol +368 -0
- package/contracts/instance/InstanceService.sol +308 -0
- package/contracts/instance/InstanceServiceManager.sol +54 -0
- package/contracts/instance/InstanceStore.sol +211 -0
- package/contracts/instance/base/Cloneable.sol +51 -0
- package/contracts/instance/base/IKeyValueStore.sol +22 -18
- package/contracts/instance/base/ILifecycle.sol +4 -4
- package/contracts/instance/base/KeyValueStore.sol +65 -53
- package/contracts/instance/base/Lifecycle.sol +42 -17
- package/contracts/instance/base/ObjectManager.sol +82 -0
- package/contracts/instance/module/IAccess.sol +54 -0
- package/contracts/instance/module/IBundle.sol +23 -0
- package/contracts/instance/module/IComponents.sol +41 -0
- package/contracts/instance/module/IDistribution.sol +42 -0
- package/contracts/instance/module/IPolicy.sol +77 -0
- package/contracts/instance/module/IRisk.sol +11 -0
- package/contracts/instance/module/ISetup.sol +33 -0
- package/contracts/instance/module/ITreasury.sol +23 -0
- package/contracts/pool/BundleService.sol +382 -0
- package/contracts/pool/BundleServiceManager.sol +51 -0
- package/contracts/pool/IBundleService.sol +118 -0
- package/contracts/pool/IPoolComponent.sol +114 -0
- package/contracts/pool/IPoolService.sol +114 -0
- package/contracts/pool/Pool.sol +302 -0
- package/contracts/pool/PoolService.sol +403 -0
- package/contracts/pool/PoolServiceManager.sol +51 -0
- package/contracts/product/ApplicationService.sol +186 -0
- package/contracts/product/ApplicationServiceManager.sol +35 -0
- package/contracts/product/ClaimService.sol +437 -0
- package/contracts/product/ClaimServiceManager.sol +35 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +90 -0
- package/contracts/product/IPolicyService.sol +80 -0
- package/contracts/product/IPricingService.sol +37 -0
- package/contracts/product/IProductComponent.sol +41 -0
- package/contracts/product/IProductService.sol +40 -0
- package/contracts/product/PolicyService.sol +376 -0
- package/contracts/product/PolicyServiceManager.sol +54 -0
- package/contracts/product/PricingService.sol +275 -0
- package/contracts/product/PricingServiceManager.sol +51 -0
- package/contracts/product/Product.sol +375 -0
- package/contracts/product/ProductService.sol +210 -0
- package/contracts/product/ProductServiceManager.sol +54 -0
- package/contracts/registry/ChainNft.sol +87 -36
- package/contracts/registry/IRegistry.sol +71 -27
- package/contracts/registry/IRegistryService.sol +66 -0
- package/contracts/registry/ITransferInterceptor.sol +7 -0
- package/contracts/registry/Registry.sol +372 -286
- package/contracts/registry/RegistryAccessManager.sol +216 -0
- package/contracts/registry/RegistryService.sol +285 -0
- package/contracts/registry/RegistryServiceManager.sol +60 -0
- package/contracts/registry/ReleaseManager.sol +328 -0
- package/contracts/registry/TokenRegistry.sol +116 -0
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/shared/Component.sol +271 -0
- package/contracts/shared/ComponentService.sol +150 -0
- package/contracts/shared/ERC165.sol +14 -8
- package/contracts/shared/IComponent.sol +90 -0
- package/contracts/shared/INftOwnable.sol +23 -0
- package/contracts/shared/IPolicyHolder.sol +40 -0
- package/contracts/shared/IRegisterable.sol +10 -19
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +18 -0
- package/contracts/shared/IVersionable.sol +38 -37
- package/contracts/shared/NftOwnable.sol +118 -0
- package/contracts/shared/PolicyHolder.sol +94 -0
- package/contracts/shared/ProxyManager.sol +169 -0
- package/contracts/shared/Registerable.sol +54 -65
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +72 -0
- package/contracts/shared/TokenHandler.sol +35 -0
- package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
- package/contracts/shared/Versionable.sol +38 -68
- package/contracts/staking/IStakingService.sol +102 -0
- package/contracts/staking/StakeingServiceManager.sol +37 -0
- package/contracts/staking/StakingService.sol +166 -0
- package/contracts/type/Amount.sol +109 -0
- package/contracts/{types → type}/Blocknumber.sol +1 -0
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/type/DistributorType.sol +55 -0
- package/contracts/type/Fee.sol +65 -0
- package/contracts/{types → type}/Key32.sol +8 -3
- package/contracts/{types → type}/NftId.sol +8 -0
- package/contracts/type/NftIdSet.sol +62 -0
- package/contracts/{types → type}/ObjectType.sol +55 -12
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/type/Referral.sol +89 -0
- package/contracts/type/RiskId.sol +43 -0
- package/contracts/type/RoleId.sol +132 -0
- package/contracts/type/Seconds.sol +54 -0
- package/contracts/{types → type}/StateId.sol +12 -3
- package/contracts/{types → type}/Timestamp.sol +22 -13
- package/contracts/{types → type}/UFixed.sol +129 -12
- package/contracts/{types → type}/Version.sol +14 -1
- package/package.json +6 -5
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -174
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -387
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -305
- 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/IA.sol/ISharedA.json +0 -37
- 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/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -63
- package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -296
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -296
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -241
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -241
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -271
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -271
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -507
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -364
- 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/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
- 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/TestPool.sol/TestPool.dbg.json +0 -4
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
- 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 -379
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
- 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 -206
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
- 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/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
- 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/NftIdSet.sol/LibNftIdSet.json +0 -10
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
- 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 -236
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
- package/contracts/components/BaseComponent.sol +0 -88
- package/contracts/components/IBaseComponent.sol +0 -19
- package/contracts/components/IPoolComponent.sol +0 -57
- package/contracts/components/IProductComponent.sol +0 -19
- package/contracts/components/Pool.sol +0 -174
- package/contracts/components/Product.sol +0 -117
- 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/README.md +0 -112
- 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/IInstanceLinked.sol +0 -8
- package/contracts/instance/base/ComponentServiceBase.sol +0 -42
- package/contracts/instance/base/IInstanceBase.sol +0 -14
- package/contracts/instance/base/IService.sol +0 -15
- package/contracts/instance/base/InstanceBase.sol +0 -80
- package/contracts/instance/base/ModuleBase.sol +0 -52
- package/contracts/instance/base/ServiceBase.sol +0 -37
- package/contracts/instance/module/access/Access.sol +0 -149
- package/contracts/instance/module/access/IAccess.sol +0 -53
- package/contracts/instance/module/bundle/BundleModule.sol +0 -136
- package/contracts/instance/module/bundle/IBundle.sol +0 -58
- package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
- package/contracts/instance/module/compensation/ICompensation.sol +0 -10
- package/contracts/instance/module/component/ComponentModule.sol +0 -104
- package/contracts/instance/module/component/IComponent.sol +0 -63
- package/contracts/instance/module/policy/IPolicy.sol +0 -61
- package/contracts/instance/module/policy/PolicyModule.sol +0 -77
- package/contracts/instance/module/pool/IPoolModule.sol +0 -41
- package/contracts/instance/module/pool/PoolModule.sol +0 -87
- package/contracts/instance/module/risk/IRisk.sol +0 -10
- package/contracts/instance/module/risk/RiskModule.sol +0 -8
- package/contracts/instance/module/treasury/ITreasury.sol +0 -103
- package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
- package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
- package/contracts/instance/service/ComponentOwnerService.sol +0 -176
- package/contracts/instance/service/IComponentOwnerService.sol +0 -22
- package/contracts/instance/service/IPoolService.sol +0 -30
- package/contracts/instance/service/IProductService.sol +0 -58
- package/contracts/instance/service/PoolService.sol +0 -123
- package/contracts/instance/service/ProductService.sol +0 -354
- package/contracts/registry/IChainNft.sol +0 -21
- package/contracts/registry/IRegistryLinked.sol +0 -8
- package/contracts/shared/IOwnable.sol +0 -6
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestPool.sol +0 -22
- package/contracts/test/TestProduct.sol +0 -44
- package/contracts/test/TestRegisterable.sol +0 -19
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -32
- package/contracts/test/TestToken.sol +0 -26
- 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/Fee.sol +0 -51
- package/contracts/types/NftIdSet.sol +0 -60
- package/contracts/types/RoleId.sol +0 -38
- /package/contracts/{types → type}/AddressSet.sol +0 -0
@@ -1,136 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRegistry} from "../../../registry/IRegistry.sol";
|
5
|
-
|
6
|
-
import {IProductService} from "../../service/IProductService.sol";
|
7
|
-
import {IPoolService} from "../../service/IPoolService.sol";
|
8
|
-
|
9
|
-
import {NftId} from "../../../types/NftId.sol";
|
10
|
-
import {Key32, KeyId} from "../../../types/Key32.sol";
|
11
|
-
import {LibNftIdSet} from "../../../types/NftIdSet.sol";
|
12
|
-
import {ObjectType, PRODUCT, ORACLE, POOL, BUNDLE, POLICY} from "../../../types/ObjectType.sol";
|
13
|
-
import {StateId, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, REVOKED, DECLINED} from "../../../types/StateId.sol";
|
14
|
-
import {Timestamp, blockTimestamp, zeroTimestamp} from "../../../types/Timestamp.sol";
|
15
|
-
import {Blocknumber, blockNumber} from "../../../types/Blocknumber.sol";
|
16
|
-
|
17
|
-
import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
|
18
|
-
import {ModuleBase} from "../../base/ModuleBase.sol";
|
19
|
-
|
20
|
-
import {IBundleModule} from "./IBundle.sol";
|
21
|
-
|
22
|
-
abstract contract BundleModule is
|
23
|
-
ModuleBase,
|
24
|
-
IBundleModule
|
25
|
-
{
|
26
|
-
|
27
|
-
using LibNftIdSet for LibNftIdSet.Set;
|
28
|
-
|
29
|
-
mapping(NftId bundleNftId => LibNftIdSet.Set policies) private _collateralizedPolicies;
|
30
|
-
mapping(NftId bundleNftId => mapping(NftId policyNftId => uint256 amount)) private _collateralizationAmount;
|
31
|
-
|
32
|
-
modifier onlyBundlePoolService() {
|
33
|
-
require(
|
34
|
-
msg.sender == address(this.getPoolService()),
|
35
|
-
"ERROR:BDL-001:NOT_POOL_SERVICE"
|
36
|
-
);
|
37
|
-
_;
|
38
|
-
}
|
39
|
-
|
40
|
-
modifier onlyBundleProductService() {
|
41
|
-
require(
|
42
|
-
msg.sender == address(this.getProductService()),
|
43
|
-
"ERROR:BDL-002:NOT_PRODUCT_SERVICE"
|
44
|
-
);
|
45
|
-
_;
|
46
|
-
}
|
47
|
-
|
48
|
-
modifier onlyPoolOrProductService() {
|
49
|
-
require(
|
50
|
-
msg.sender == address(this.getPoolService())
|
51
|
-
|| msg.sender == address(this.getProductService()),
|
52
|
-
"ERROR:BDL-003:NOT_POOL_OR_PRODUCT_SERVICE"
|
53
|
-
);
|
54
|
-
_;
|
55
|
-
}
|
56
|
-
|
57
|
-
function initializeBundleModule(IKeyValueStore keyValueStore) internal {
|
58
|
-
_initialize(keyValueStore, BUNDLE());
|
59
|
-
}
|
60
|
-
|
61
|
-
function createBundleInfo(
|
62
|
-
NftId bundleNftId,
|
63
|
-
NftId poolNftId,
|
64
|
-
uint256 amount,
|
65
|
-
uint256 lifetime,
|
66
|
-
bytes calldata filter
|
67
|
-
)
|
68
|
-
external
|
69
|
-
onlyBundlePoolService
|
70
|
-
override
|
71
|
-
{
|
72
|
-
BundleInfo memory bundleInfo = BundleInfo(
|
73
|
-
bundleNftId,
|
74
|
-
poolNftId,
|
75
|
-
filter,
|
76
|
-
amount, // capital
|
77
|
-
0, // locked capital
|
78
|
-
amount, // balance
|
79
|
-
blockTimestamp().addSeconds(lifetime), // expiredAt
|
80
|
-
zeroTimestamp() // closedAt
|
81
|
-
);
|
82
|
-
|
83
|
-
_create(bundleNftId, abi.encode(bundleInfo));
|
84
|
-
}
|
85
|
-
|
86
|
-
function setBundleInfo(BundleInfo memory bundleInfo)
|
87
|
-
external
|
88
|
-
override
|
89
|
-
onlyPoolOrProductService
|
90
|
-
{
|
91
|
-
_updateData(bundleInfo.nftId, abi.encode(bundleInfo));
|
92
|
-
}
|
93
|
-
|
94
|
-
function updateBundleState(NftId bundleNftId, StateId state)
|
95
|
-
external
|
96
|
-
override
|
97
|
-
onlyBundlePoolService
|
98
|
-
{
|
99
|
-
_updateState(bundleNftId, state);
|
100
|
-
}
|
101
|
-
|
102
|
-
function collateralizePolicy(
|
103
|
-
NftId bundleNftId,
|
104
|
-
NftId policyNftId,
|
105
|
-
uint256 collateralAmount
|
106
|
-
)
|
107
|
-
external
|
108
|
-
onlyBundleProductService
|
109
|
-
override
|
110
|
-
{
|
111
|
-
_collateralizationAmount[bundleNftId][policyNftId] = collateralAmount;
|
112
|
-
_collateralizedPolicies[bundleNftId].add(policyNftId);
|
113
|
-
}
|
114
|
-
|
115
|
-
function releasePolicy(
|
116
|
-
NftId bundleNftId,
|
117
|
-
NftId policyNftId
|
118
|
-
)
|
119
|
-
external
|
120
|
-
onlyBundleProductService
|
121
|
-
override
|
122
|
-
returns(uint256 collateralAmount)
|
123
|
-
{
|
124
|
-
collateralAmount = _collateralizationAmount[bundleNftId][policyNftId];
|
125
|
-
delete _collateralizationAmount[bundleNftId][policyNftId];
|
126
|
-
_collateralizedPolicies[bundleNftId].remove(policyNftId);
|
127
|
-
}
|
128
|
-
|
129
|
-
function getBundleInfo(NftId bundleNftId) external view override returns(BundleInfo memory bundleInfo) {
|
130
|
-
return abi.decode(_getData(bundleNftId), (BundleInfo));
|
131
|
-
}
|
132
|
-
|
133
|
-
function toBundleKey32(NftId bundleNftId) external view override returns (Key32 key32) {
|
134
|
-
return _toKey32(bundleNftId);
|
135
|
-
}
|
136
|
-
}
|
@@ -1,58 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRegistry} from "../../../registry/IRegistry.sol";
|
5
|
-
import {IInstance} from "../../IInstance.sol";
|
6
|
-
import {Key32} from "../../../types/Key32.sol";
|
7
|
-
import {NftId} from "../../../types/NftId.sol";
|
8
|
-
import {StateId} from "../../../types/StateId.sol";
|
9
|
-
import {Timestamp} from "../../../types/Timestamp.sol";
|
10
|
-
import {Blocknumber} from "../../../types/Blocknumber.sol";
|
11
|
-
|
12
|
-
import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
|
13
|
-
import {IProductService} from "../../service/IProductService.sol";
|
14
|
-
import {IPoolService} from "../../service/IPoolService.sol";
|
15
|
-
|
16
|
-
interface IBundle {
|
17
|
-
|
18
|
-
struct BundleInfo {
|
19
|
-
NftId nftId;
|
20
|
-
NftId poolNftId;
|
21
|
-
bytes filter; // required conditions for applications to be considered for collateralization by this bundle
|
22
|
-
uint256 capitalAmount; // net investment capital amount (<= balance)
|
23
|
-
uint256 lockedAmount; // capital amount linked to collateralizaion of non-closed policies (<= balance)
|
24
|
-
uint256 balanceAmount; // total amount of funds: net investment capital + net premiums - payouts
|
25
|
-
Timestamp expiredAt; // no new policies
|
26
|
-
Timestamp closedAt;
|
27
|
-
}
|
28
|
-
}
|
29
|
-
|
30
|
-
interface IBundleModule is IBundle {
|
31
|
-
|
32
|
-
function createBundleInfo(
|
33
|
-
NftId bundleNftId,
|
34
|
-
NftId poolNftId,
|
35
|
-
uint256 amount,
|
36
|
-
uint256 lifetime,
|
37
|
-
bytes calldata filter
|
38
|
-
) external;
|
39
|
-
|
40
|
-
function setBundleInfo(BundleInfo memory bundleInfo) external;
|
41
|
-
function updateBundleState(NftId bundleNftId, StateId state) external;
|
42
|
-
|
43
|
-
function collateralizePolicy(NftId bundleNftId, NftId policyNftId, uint256 amount) external;
|
44
|
-
function releasePolicy(NftId bundleNftId, NftId policyNftId) external returns(uint256 collateralAmount);
|
45
|
-
|
46
|
-
function getBundleInfo(NftId bundleNftId) external view returns(BundleInfo memory bundleInfo);
|
47
|
-
function toBundleKey32(NftId bundleNftId) external view returns (Key32 key32);
|
48
|
-
|
49
|
-
// repeat registry linked signature
|
50
|
-
function getRegistry() external view returns (IRegistry registry);
|
51
|
-
|
52
|
-
// repeat instance base signature
|
53
|
-
function getKeyValueStore() external view returns (IKeyValueStore keyValueStore);
|
54
|
-
|
55
|
-
// repeat service linked signatures to avoid linearization issues
|
56
|
-
function getProductService() external returns(IProductService);
|
57
|
-
function getPoolService() external returns(IPoolService);
|
58
|
-
}
|
@@ -1,104 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
-
|
6
|
-
import {IRegistry} from "../../../registry/IRegistry.sol";
|
7
|
-
|
8
|
-
import {IProductService} from "../../service/IProductService.sol";
|
9
|
-
import {IPoolService} from "../../service/IPoolService.sol";
|
10
|
-
|
11
|
-
import {NftId} from "../../../types/NftId.sol";
|
12
|
-
import {Key32, KeyId} from "../../../types/Key32.sol";
|
13
|
-
import {LibNftIdSet} from "../../../types/NftIdSet.sol";
|
14
|
-
import {ObjectType, COMPONENT, PRODUCT, ORACLE, POOL, BUNDLE, POLICY} from "../../../types/ObjectType.sol";
|
15
|
-
import {StateId, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, REVOKED, DECLINED} from "../../../types/StateId.sol";
|
16
|
-
import {Timestamp, blockTimestamp, zeroTimestamp} from "../../../types/Timestamp.sol";
|
17
|
-
import {Blocknumber, blockNumber} from "../../../types/Blocknumber.sol";
|
18
|
-
|
19
|
-
import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
|
20
|
-
import {ModuleBase} from "../../base/ModuleBase.sol";
|
21
|
-
|
22
|
-
import {IComponentModule} from "./IComponent.sol";
|
23
|
-
|
24
|
-
abstract contract ComponentModule is
|
25
|
-
ModuleBase,
|
26
|
-
IComponentModule
|
27
|
-
{
|
28
|
-
|
29
|
-
NftId[] private _nftIds;
|
30
|
-
|
31
|
-
modifier onlyComponentOwnerService() {
|
32
|
-
require(
|
33
|
-
msg.sender == address(this.getComponentOwnerService()),
|
34
|
-
"ERROR:CMP-001:NOT_OWNER_SERVICE"
|
35
|
-
);
|
36
|
-
_;
|
37
|
-
}
|
38
|
-
|
39
|
-
function initializeComponentModule(IKeyValueStore keyValueStore) internal {
|
40
|
-
_initialize(keyValueStore, COMPONENT());
|
41
|
-
}
|
42
|
-
|
43
|
-
function registerComponent(
|
44
|
-
NftId nftId,
|
45
|
-
ObjectType, // objectType,
|
46
|
-
IERC20Metadata token
|
47
|
-
)
|
48
|
-
external
|
49
|
-
onlyComponentOwnerService
|
50
|
-
override
|
51
|
-
{
|
52
|
-
ComponentInfo memory info = ComponentInfo(
|
53
|
-
nftId,
|
54
|
-
token
|
55
|
-
);
|
56
|
-
|
57
|
-
_nftIds.push(nftId);
|
58
|
-
|
59
|
-
_create(nftId, abi.encode(info));
|
60
|
-
}
|
61
|
-
|
62
|
-
function setComponentInfo(ComponentInfo memory info)
|
63
|
-
external
|
64
|
-
override
|
65
|
-
onlyComponentOwnerService
|
66
|
-
{
|
67
|
-
_updateData(info.nftId, abi.encode(info));
|
68
|
-
}
|
69
|
-
|
70
|
-
function updateComponentState(NftId nftId, StateId state)
|
71
|
-
external
|
72
|
-
override
|
73
|
-
onlyComponentOwnerService
|
74
|
-
{
|
75
|
-
_updateState(nftId, state);
|
76
|
-
}
|
77
|
-
|
78
|
-
function getComponentCount()
|
79
|
-
external
|
80
|
-
view
|
81
|
-
override
|
82
|
-
returns (uint256 numberOfCompnents)
|
83
|
-
{
|
84
|
-
return _nftIds.length;
|
85
|
-
}
|
86
|
-
|
87
|
-
function getComponentId(
|
88
|
-
uint256 idx
|
89
|
-
) external view override returns (NftId componentNftId) {
|
90
|
-
return _nftIds[idx];
|
91
|
-
}
|
92
|
-
|
93
|
-
function getComponentInfo(NftId nftId) external view override returns(ComponentInfo memory info) {
|
94
|
-
return abi.decode(_getData(nftId), (ComponentInfo));
|
95
|
-
}
|
96
|
-
|
97
|
-
function getComponentState(NftId nftId) external view returns (StateId state) {
|
98
|
-
return _getState(nftId);
|
99
|
-
}
|
100
|
-
|
101
|
-
function toComponentKey32(NftId nftId) external view override returns (Key32 key32) {
|
102
|
-
return _toKey32(nftId);
|
103
|
-
}
|
104
|
-
}
|
@@ -1,63 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
-
|
6
|
-
|
7
|
-
import {IRegistry} from "../../../registry/IRegistry.sol";
|
8
|
-
import {IInstance} from "../../IInstance.sol";
|
9
|
-
import {StateId} from "../../../types/StateId.sol";
|
10
|
-
import {Key32} from "../../../types/Key32.sol";
|
11
|
-
import {NftId} from "../../../types/NftId.sol";
|
12
|
-
import {ObjectType} from "../../../types/ObjectType.sol";
|
13
|
-
import {RoleId} from "../../../types/RoleId.sol";
|
14
|
-
import {Fee} from "../../../types/Fee.sol";
|
15
|
-
import {UFixed} from "../../../types/UFixed.sol";
|
16
|
-
|
17
|
-
import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
|
18
|
-
import {IComponentOwnerService} from "../../service/IComponentOwnerService.sol";
|
19
|
-
|
20
|
-
interface IComponent {
|
21
|
-
struct ComponentInfo {
|
22
|
-
NftId nftId;
|
23
|
-
IERC20Metadata token;
|
24
|
-
}
|
25
|
-
}
|
26
|
-
|
27
|
-
interface IComponentModule is IComponent {
|
28
|
-
|
29
|
-
function registerComponent(
|
30
|
-
NftId nftId,
|
31
|
-
ObjectType objectType,
|
32
|
-
IERC20Metadata token
|
33
|
-
) external;
|
34
|
-
|
35
|
-
function setComponentInfo(
|
36
|
-
ComponentInfo memory info
|
37
|
-
) external;
|
38
|
-
|
39
|
-
function updateComponentState(NftId nftId, StateId state) external;
|
40
|
-
|
41
|
-
function getComponentInfo(
|
42
|
-
NftId nftId
|
43
|
-
) external view returns (ComponentInfo memory info);
|
44
|
-
|
45
|
-
function getComponentState(NftId nftId) external view returns (StateId state);
|
46
|
-
|
47
|
-
function getComponentCount() external view returns (uint256 numberOfCompnents);
|
48
|
-
|
49
|
-
function getComponentId(uint256 idx) external view returns (NftId nftId);
|
50
|
-
|
51
|
-
function hasRole(RoleId role, address member) external view returns (bool);
|
52
|
-
|
53
|
-
function toComponentKey32(NftId nftId) external view returns (Key32 key32);
|
54
|
-
|
55
|
-
// repeat registry linked signature
|
56
|
-
function getRegistry() external view returns (IRegistry registry);
|
57
|
-
|
58
|
-
// repeat instance base signature
|
59
|
-
function getKeyValueStore() external view returns (IKeyValueStore keyValueStore);
|
60
|
-
|
61
|
-
// repeat service linked signaturea to avoid linearization issues
|
62
|
-
function getComponentOwnerService() external view returns(IComponentOwnerService);
|
63
|
-
}
|
@@ -1,61 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRegistry} from "../../../registry/IRegistry.sol";
|
5
|
-
import {IInstance} from "../../IInstance.sol";
|
6
|
-
import {IProductService} from "../../service/IProductService.sol";
|
7
|
-
import {NftId} from "../../../types/NftId.sol";
|
8
|
-
import {StateId} from "../../../types/StateId.sol";
|
9
|
-
import {Timestamp} from "../../../types/Timestamp.sol";
|
10
|
-
import {Blocknumber} from "../../../types/Blocknumber.sol";
|
11
|
-
|
12
|
-
// TODO check if there is value to introuce IContract and let IPolicy derive from IContract
|
13
|
-
interface IPolicy {
|
14
|
-
struct PolicyInfo {
|
15
|
-
NftId nftId;
|
16
|
-
NftId productNftId;
|
17
|
-
NftId bundleNftId;
|
18
|
-
address beneficiary;
|
19
|
-
StateId state; // applied, withdrawn, rejected, active, closed
|
20
|
-
uint256 sumInsuredAmount;
|
21
|
-
uint256 premiumAmount;
|
22
|
-
uint256 premiumPaidAmount;
|
23
|
-
uint256 lifetime;
|
24
|
-
bytes applicationData;
|
25
|
-
bytes policyData;
|
26
|
-
Timestamp createdAt;
|
27
|
-
Timestamp activatedAt; // time of underwriting
|
28
|
-
Timestamp expiredAt; // no new claims (activatedAt + lifetime)
|
29
|
-
Timestamp closedAt; // no locked capital
|
30
|
-
Blocknumber updatedIn; // write log entries in a way to support backtracking of all state changes
|
31
|
-
}
|
32
|
-
}
|
33
|
-
|
34
|
-
interface IPolicyModule is IPolicy {
|
35
|
-
function createApplication(
|
36
|
-
NftId productNftId,
|
37
|
-
NftId policyNftId,
|
38
|
-
uint256 sumInsuredAmount,
|
39
|
-
uint256 premiumAmount,
|
40
|
-
uint256 lifetime,
|
41
|
-
NftId bundleNftId
|
42
|
-
) external;
|
43
|
-
|
44
|
-
function setPolicyInfo(PolicyInfo memory policyInfo) external;
|
45
|
-
|
46
|
-
// function underwrite(NftId nftId) external;
|
47
|
-
|
48
|
-
// function processPremium(NftId nftId, uint256 amount) external;
|
49
|
-
|
50
|
-
// function activate(NftId nftId, Timestamp activateAt) external;
|
51
|
-
|
52
|
-
function getPolicyInfo(
|
53
|
-
NftId nftId
|
54
|
-
) external view returns (PolicyInfo memory info);
|
55
|
-
|
56
|
-
// repeat registry linked signature
|
57
|
-
function getRegistry() external view returns (IRegistry registry);
|
58
|
-
|
59
|
-
// repeat service linked signature to avoid linearization issues
|
60
|
-
function getProductService() external returns(IProductService);
|
61
|
-
}
|
@@ -1,77 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRegistry} from "../../../registry/IRegistry.sol";
|
5
|
-
|
6
|
-
import {IProductService} from "../../service/IProductService.sol";
|
7
|
-
import {IPolicy, IPolicyModule} from "./IPolicy.sol";
|
8
|
-
import {ObjectType, POLICY} from "../../../types/ObjectType.sol";
|
9
|
-
import {APPLIED, ACTIVE, UNDERWRITTEN} from "../../../types/StateId.sol";
|
10
|
-
import {NftId, NftIdLib} from "../../../types/NftId.sol";
|
11
|
-
import {Timestamp, blockTimestamp, zeroTimestamp} from "../../../types/Timestamp.sol";
|
12
|
-
import {Blocknumber, blockNumber} from "../../../types/Blocknumber.sol";
|
13
|
-
|
14
|
-
abstract contract PolicyModule is IPolicyModule {
|
15
|
-
using NftIdLib for NftId;
|
16
|
-
|
17
|
-
mapping(NftId nftId => PolicyInfo info) private _policyInfo;
|
18
|
-
|
19
|
-
// TODO find a better place to avoid dupliation
|
20
|
-
modifier onlyProductService2() {
|
21
|
-
require(
|
22
|
-
msg.sender == address(this.getProductService()),
|
23
|
-
"ERROR:POL-001:NOT_PRODUCT_SERVICE"
|
24
|
-
);
|
25
|
-
_;
|
26
|
-
}
|
27
|
-
|
28
|
-
function createApplication(
|
29
|
-
NftId productNftId,
|
30
|
-
NftId policyNftId,
|
31
|
-
uint256 sumInsuredAmount,
|
32
|
-
uint256 premiumAmount,
|
33
|
-
uint256 lifetime,
|
34
|
-
NftId bundleNftId
|
35
|
-
)
|
36
|
-
external
|
37
|
-
onlyProductService2
|
38
|
-
override
|
39
|
-
{
|
40
|
-
_policyInfo[policyNftId] = PolicyInfo(
|
41
|
-
policyNftId,
|
42
|
-
productNftId,
|
43
|
-
bundleNftId,
|
44
|
-
address(0), // beneficiary = policy nft holder
|
45
|
-
// _lifecycleModule.getInitialState(POLICY()),
|
46
|
-
APPLIED(),
|
47
|
-
sumInsuredAmount,
|
48
|
-
premiumAmount,
|
49
|
-
0, // premium paid amount
|
50
|
-
lifetime,
|
51
|
-
"", // applicationData
|
52
|
-
"", // policyData
|
53
|
-
blockTimestamp(), // createdAt
|
54
|
-
zeroTimestamp(), // activatedAt
|
55
|
-
zeroTimestamp(), // expiredAt
|
56
|
-
zeroTimestamp(), // closedAt
|
57
|
-
blockNumber() // updatedIn
|
58
|
-
);
|
59
|
-
|
60
|
-
// TODO add logging
|
61
|
-
}
|
62
|
-
|
63
|
-
function setPolicyInfo(PolicyInfo memory policyInfo)
|
64
|
-
external
|
65
|
-
override
|
66
|
-
onlyProductService2
|
67
|
-
{
|
68
|
-
_policyInfo[policyInfo.nftId] = policyInfo;
|
69
|
-
}
|
70
|
-
|
71
|
-
function getPolicyInfo(
|
72
|
-
NftId nftId
|
73
|
-
) external view returns (PolicyInfo memory info) {
|
74
|
-
return _policyInfo[nftId];
|
75
|
-
}
|
76
|
-
|
77
|
-
}
|
@@ -1,41 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRegistry} from "../../../registry/IRegistry.sol";
|
5
|
-
import {NftId} from "../../../types/NftId.sol";
|
6
|
-
import {UFixed} from "../../../types/UFixed.sol";
|
7
|
-
import {IProductService} from "../../service/IProductService.sol";
|
8
|
-
import {IPoolService} from "../../service/IPoolService.sol";
|
9
|
-
|
10
|
-
interface IPool {
|
11
|
-
struct PoolInfo {
|
12
|
-
NftId nftId;
|
13
|
-
bool isVerifying;
|
14
|
-
UFixed collateralizationLevel;
|
15
|
-
}
|
16
|
-
}
|
17
|
-
|
18
|
-
interface IPoolModule is IPool {
|
19
|
-
|
20
|
-
function registerPool(
|
21
|
-
NftId poolNftId,
|
22
|
-
bool isVerifying,
|
23
|
-
UFixed collateralizationLevel
|
24
|
-
) external;
|
25
|
-
|
26
|
-
function addBundleToPool(
|
27
|
-
NftId bundleNftId,
|
28
|
-
NftId poolNftId,
|
29
|
-
uint256 amount
|
30
|
-
) external;
|
31
|
-
|
32
|
-
function getPoolInfo(
|
33
|
-
NftId nftId
|
34
|
-
) external view returns (PoolInfo memory info);
|
35
|
-
|
36
|
-
function getBundleCount(NftId poolNftId) external view returns (uint256 bundleCount);
|
37
|
-
function getBundleNftId(NftId poolNftId, uint256 index) external view returns (NftId bundleNftId);
|
38
|
-
|
39
|
-
// repeat service linked signatures to avoid linearization issues
|
40
|
-
function getPoolService() external returns(IPoolService);
|
41
|
-
}
|
@@ -1,87 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRegistry} from "../../../registry/IRegistry.sol";
|
5
|
-
import {IProductService} from "../../service/IProductService.sol";
|
6
|
-
import {IPoolService} from "../../service/IPoolService.sol";
|
7
|
-
import {IPolicy, IPolicyModule} from "../../module/policy/IPolicy.sol";
|
8
|
-
import {ITreasuryModule} from "../../module/treasury/ITreasury.sol";
|
9
|
-
|
10
|
-
import {NftId} from "../../../types/NftId.sol";
|
11
|
-
import {LibNftIdSet} from "../../../types/NftIdSet.sol";
|
12
|
-
import {StateId, APPLIED} from "../../../types/StateId.sol";
|
13
|
-
import {UFixed} from "../../../types/UFixed.sol";
|
14
|
-
|
15
|
-
import {IPoolModule} from "./IPoolModule.sol";
|
16
|
-
|
17
|
-
abstract contract PoolModule is
|
18
|
-
IPoolModule
|
19
|
-
{
|
20
|
-
using LibNftIdSet for LibNftIdSet.Set;
|
21
|
-
|
22
|
-
mapping(NftId poolNftId => PoolInfo info) private _poolInfo;
|
23
|
-
mapping(NftId poolNftId => LibNftIdSet.Set bundles) private _bundlesForPool;
|
24
|
-
|
25
|
-
modifier poolServiceCallingPool() {
|
26
|
-
require(
|
27
|
-
msg.sender == address(this.getPoolService()),
|
28
|
-
"ERROR:PL-001:NOT_POOL_SERVICE"
|
29
|
-
);
|
30
|
-
_;
|
31
|
-
}
|
32
|
-
|
33
|
-
function registerPool(
|
34
|
-
NftId nftId,
|
35
|
-
bool isVerifying,
|
36
|
-
UFixed collateralizationRate
|
37
|
-
)
|
38
|
-
public
|
39
|
-
override
|
40
|
-
{
|
41
|
-
require(
|
42
|
-
_poolInfo[nftId].nftId.eqz(),
|
43
|
-
"ERROR:PL-010:ALREADY_CREATED");
|
44
|
-
|
45
|
-
_poolInfo[nftId] = PoolInfo(
|
46
|
-
nftId,
|
47
|
-
isVerifying,
|
48
|
-
collateralizationRate
|
49
|
-
);
|
50
|
-
|
51
|
-
// TODO add logging
|
52
|
-
}
|
53
|
-
|
54
|
-
function addBundleToPool(
|
55
|
-
NftId bundleNftId,
|
56
|
-
NftId poolNftId,
|
57
|
-
uint256 // amount
|
58
|
-
)
|
59
|
-
external
|
60
|
-
override
|
61
|
-
{
|
62
|
-
LibNftIdSet.Set storage bundleSet = _bundlesForPool[poolNftId];
|
63
|
-
require(
|
64
|
-
!bundleSet.contains(bundleNftId),
|
65
|
-
"ERROR:PL-020:BUNDLE_ALREADY_ADDED");
|
66
|
-
|
67
|
-
bundleSet.add(bundleNftId);
|
68
|
-
}
|
69
|
-
|
70
|
-
|
71
|
-
function getPoolInfo(
|
72
|
-
NftId nftId
|
73
|
-
) external view override returns (PoolInfo memory info) {
|
74
|
-
info = _poolInfo[nftId];
|
75
|
-
}
|
76
|
-
|
77
|
-
|
78
|
-
function getBundleCount(NftId poolNftId) external view override returns (uint256 bundleCount) {
|
79
|
-
return _bundlesForPool[poolNftId].getLength();
|
80
|
-
}
|
81
|
-
|
82
|
-
|
83
|
-
function getBundleNftId(NftId poolNftId, uint256 index) external view override returns (NftId bundleNftId) {
|
84
|
-
return _bundlesForPool[poolNftId].getElementAt(index);
|
85
|
-
}
|
86
|
-
|
87
|
-
}
|