@etherisc/gif-next 0.0.2-ce87da3-250 → 0.0.2-cf22d7b-845
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +8 -84
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +322 -252
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +249 -174
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +266 -91
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +68 -54
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +315 -2127
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +219 -78
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +456 -2872
- 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 +204 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +601 -422
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +287 -280
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +119 -78
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -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 +6 -1
- 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 +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/{ISetup.sol/ISetup.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/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +278 -221
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +480 -213
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +527 -284
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +124 -98
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +266 -142
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +536 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +408 -219
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +75 -72
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/Product.sol/Product.json +433 -282
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -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 +188 -19
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +305 -85
- 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 +425 -34
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +344 -106
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +93 -54
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +834 -89
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
- 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 +1715 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +209 -166
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -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} +96 -122
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/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 → shared}/IComponent.sol/IComponent.json +222 -104
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
- 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 +3 -10
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +91 -27
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +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 +15 -22
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -23
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +99 -30
- 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/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 +993 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -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 +1324 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -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/{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/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
- 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/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/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
- 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/{components → distribution}/Distribution.sol +49 -75
- package/contracts/distribution/DistributionService.sol +298 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/{components → distribution}/IDistributionComponent.sol +11 -37
- package/contracts/{instance/service → distribution}/IDistributionService.sol +25 -25
- package/contracts/instance/BundleManager.sol +15 -14
- package/contracts/instance/IInstance.sol +53 -66
- package/contracts/instance/IInstanceService.sol +40 -18
- package/contracts/instance/Instance.sol +139 -195
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
- package/contracts/instance/InstanceReader.sol +135 -63
- package/contracts/instance/InstanceService.sol +226 -340
- package/contracts/instance/InstanceServiceManager.sol +11 -21
- package/contracts/instance/InstanceStore.sol +260 -0
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -14
- package/contracts/instance/module/IAccess.sol +19 -20
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/{ISetup.sol → IComponents.sol} +24 -20
- package/contracts/instance/module/IDistribution.sol +7 -5
- package/contracts/instance/module/IPolicy.sol +53 -16
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
- 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 +453 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/product/ClaimService.sol +442 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +16 -36
- package/contracts/product/IClaimService.sol +93 -0
- package/contracts/{instance/service → product}/IPolicyService.sol +37 -48
- 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 +301 -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 +46 -21
- package/contracts/registry/IRegistryService.sol +39 -37
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +208 -96
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +69 -86
- package/contracts/registry/RegistryServiceManager.sol +21 -25
- package/contracts/registry/ReleaseManager.sol +458 -181
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/AccessManagerCustom.sol +736 -0
- package/contracts/shared/AccessManagerExtended.sol +470 -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 +278 -0
- package/contracts/shared/ComponentService.sol +596 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +111 -0
- package/contracts/shared/ERC165.sol +1 -1
- 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 +91 -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 +2 -2
- package/contracts/shared/IPolicyHolder.sol +29 -10
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +7 -7
- package/contracts/shared/IVersionable.sol +1 -1
- 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 +28 -7
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +3 -16
- package/contracts/shared/PolicyHolder.sol +40 -19
- package/contracts/shared/ProxyManager.sol +34 -4
- package/contracts/shared/Registerable.sol +15 -14
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/Service.sol +29 -10
- package/contracts/shared/TokenHandler.sol +37 -6
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +149 -0
- package/contracts/staking/StakeManagerLib.sol +179 -0
- package/contracts/staking/Staking.sol +551 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +406 -0
- package/contracts/staking/StakingServiceManager.sol +45 -0
- package/contracts/staking/StakingStore.sol +572 -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/{types → type}/ClaimId.sol +25 -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/{types → type}/ObjectType.sol +20 -7
- package/contracts/{types → type}/PayoutId.sol +33 -5
- package/contracts/{types → type}/Referral.sol +5 -1
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/{types → type}/RoleId.sol +66 -13
- package/contracts/type/Seconds.sol +81 -0
- package/contracts/{types → type}/StateId.sol +24 -6
- package/contracts/{types → type}/Timestamp.sol +18 -13
- package/contracts/{types → type}/UFixed.sol +1 -0
- package/contracts/{types → type}/Version.sol +2 -1
- package/package.json +3 -3
- 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/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/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 -984
- 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/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -869
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1096
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1254
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -753
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
- 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/IPoolService.sol/IPoolService.json +0 -347
- 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 -1120
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
- 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 -383
- 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 -521
- 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 -104
- 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/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
- 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/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
- 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/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- 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 -241
- package/contracts/components/IComponent.sol +0 -54
- package/contracts/components/IPoolComponent.sol +0 -87
- package/contracts/components/IProductComponent.sol +0 -39
- package/contracts/components/Pool.sol +0 -254
- package/contracts/components/Product.sol +0 -285
- package/contracts/instance/InstanceAccessManager.sol +0 -297
- package/contracts/instance/base/ComponentService.sol +0 -134
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -268
- package/contracts/instance/service/BundleService.sol +0 -298
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -151
- package/contracts/instance/service/DistributionService.sol +0 -366
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -54
- package/contracts/instance/service/IClaimService.sol +0 -61
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -476
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -109
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -233
- 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 → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,241 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
5
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
|
-
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
7
|
-
|
8
|
-
import {IComponent} from "./IComponent.sol";
|
9
|
-
import {IProductService} from "../instance/service/IProductService.sol";
|
10
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
11
|
-
import {IInstance} from "../instance/IInstance.sol";
|
12
|
-
import {InstanceAccessManager} from "../instance/InstanceAccessManager.sol";
|
13
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
14
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
15
|
-
import {NftId} from "../types/NftId.sol";
|
16
|
-
import {ObjectType, INSTANCE, PRODUCT} from "../types/ObjectType.sol";
|
17
|
-
import {VersionPart} from "../types/Version.sol";
|
18
|
-
import {Registerable} from "../shared/Registerable.sol";
|
19
|
-
import {RoleId, RoleIdLib} from "../types/RoleId.sol";
|
20
|
-
import {IAccess} from "../instance/module/IAccess.sol";
|
21
|
-
import {VersionPart} from "../types/Version.sol";
|
22
|
-
|
23
|
-
// TODO discuss to inherit from oz accessmanaged
|
24
|
-
// then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
|
25
|
-
// same pattern as for Service which is also upgradeable
|
26
|
-
abstract contract Component is
|
27
|
-
Registerable,
|
28
|
-
IComponent,
|
29
|
-
AccessManagedUpgradeable
|
30
|
-
{
|
31
|
-
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Component.sol")) - 1)) & ~bytes32(uint256(0xff));
|
32
|
-
bytes32 public constant CONTRACT_LOCATION_V1 = 0xffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00;
|
33
|
-
|
34
|
-
struct ComponentStorage {
|
35
|
-
IInstance _instance; // instance for this component
|
36
|
-
InstanceReader _instanceReader; // instance reader for this component
|
37
|
-
string _name; // unique (per instance) component name
|
38
|
-
IERC20Metadata _token; // token for this component
|
39
|
-
address _wallet; // wallet for this component (default = component contract itself)
|
40
|
-
bool _isNftInterceptor; // declares if component is involved in nft transfers
|
41
|
-
IInstanceService _instanceService; // instance service for this component
|
42
|
-
|
43
|
-
NftId _productNftId; // only relevant for components that are linked to a aproduct
|
44
|
-
IProductService _productService; // product service for component, might not be relevant for some component types (eg oracles)
|
45
|
-
}
|
46
|
-
|
47
|
-
|
48
|
-
modifier onlyChainNft() {
|
49
|
-
if(msg.sender != getRegistry().getChainNftAddress()) {
|
50
|
-
revert ErrorComponentNotChainNft(msg.sender);
|
51
|
-
}
|
52
|
-
_;
|
53
|
-
}
|
54
|
-
|
55
|
-
|
56
|
-
modifier onlyProductService() {
|
57
|
-
if(msg.sender != address(_getComponentStorage()._productService)) {
|
58
|
-
revert ErrorComponentNotProductService(msg.sender);
|
59
|
-
}
|
60
|
-
_;
|
61
|
-
}
|
62
|
-
|
63
|
-
function _getComponentStorage() private pure returns (ComponentStorage storage $) {
|
64
|
-
assembly {
|
65
|
-
$.slot := CONTRACT_LOCATION_V1
|
66
|
-
}
|
67
|
-
}
|
68
|
-
|
69
|
-
function initializeComponent(
|
70
|
-
address registry,
|
71
|
-
NftId instanceNftId,
|
72
|
-
string memory name,
|
73
|
-
address token,
|
74
|
-
ObjectType componentType,
|
75
|
-
bool isInterceptor,
|
76
|
-
address initialOwner,
|
77
|
-
bytes memory data
|
78
|
-
)
|
79
|
-
public
|
80
|
-
virtual
|
81
|
-
onlyInitializing()
|
82
|
-
{
|
83
|
-
ComponentStorage storage $ = _getComponentStorage();
|
84
|
-
initializeRegisterable(registry, instanceNftId, componentType, isInterceptor, initialOwner, data);
|
85
|
-
|
86
|
-
// set unique name of component
|
87
|
-
$._name = name;
|
88
|
-
$._isNftInterceptor = isInterceptor;
|
89
|
-
|
90
|
-
// set and check linked instance
|
91
|
-
IRegistry.ObjectInfo memory instanceInfo = getRegistry().getObjectInfo(instanceNftId);
|
92
|
-
$._instance = IInstance(instanceInfo.objectAddress);
|
93
|
-
if(!$._instance.supportsInterface(type(IInstance).interfaceId)) {
|
94
|
-
revert ErrorComponentNotInstance(instanceNftId, instanceInfo.objectAddress);
|
95
|
-
}
|
96
|
-
|
97
|
-
// initialize AccessManagedUpgradeable
|
98
|
-
__AccessManaged_init($._instance.authority());
|
99
|
-
|
100
|
-
// set linked services
|
101
|
-
VersionPart gifVersion = $._instance.getMajorVersion();
|
102
|
-
$._instanceService = IInstanceService(getRegistry().getServiceAddress(INSTANCE(), gifVersion));
|
103
|
-
$._instanceReader = $._instance.getInstanceReader();
|
104
|
-
$._productService = IProductService(getRegistry().getServiceAddress(PRODUCT(), gifVersion));
|
105
|
-
|
106
|
-
// set wallet and token
|
107
|
-
$._wallet = address(this);
|
108
|
-
$._token = IERC20Metadata(token);
|
109
|
-
|
110
|
-
registerInterface(type(IComponent).interfaceId);
|
111
|
-
}
|
112
|
-
|
113
|
-
/// @dev callback function for nft transfers. may only be called by chain nft contract.
|
114
|
-
/// default implementation is empty. overriding functions MUST add onlyChainNft modifier
|
115
|
-
function nftTransferFrom(address from, address to, uint256 tokenId)
|
116
|
-
external
|
117
|
-
virtual override
|
118
|
-
onlyChainNft()
|
119
|
-
{ }
|
120
|
-
|
121
|
-
function lock() external onlyOwner override {
|
122
|
-
_getComponentStorage()._instanceService.setTargetLocked(getName(), true);
|
123
|
-
}
|
124
|
-
|
125
|
-
function unlock() external onlyOwner override {
|
126
|
-
_getComponentStorage()._instanceService.setTargetLocked(getName(), false);
|
127
|
-
}
|
128
|
-
|
129
|
-
// only product service may set product nft id during registration of product setup
|
130
|
-
function setProductNftId(NftId productNftId)
|
131
|
-
external
|
132
|
-
override
|
133
|
-
onlyProductService()
|
134
|
-
{
|
135
|
-
ComponentStorage storage $ = _getComponentStorage();
|
136
|
-
|
137
|
-
if($._productNftId.gtz()) {
|
138
|
-
revert ErrorComponentProductNftAlreadySet();
|
139
|
-
}
|
140
|
-
|
141
|
-
$._productNftId = productNftId;
|
142
|
-
}
|
143
|
-
|
144
|
-
/// @dev Sets the wallet address for the component.
|
145
|
-
/// if the current wallet has tokens, these will be transferred.
|
146
|
-
/// if the new wallet address is externally owned, an approval from the
|
147
|
-
/// owner of the external wallet for the component to move all tokens must exist.
|
148
|
-
function setWallet(address newWallet)
|
149
|
-
external
|
150
|
-
override
|
151
|
-
onlyOwner
|
152
|
-
{
|
153
|
-
ComponentStorage storage $ = _getComponentStorage();
|
154
|
-
|
155
|
-
address currentWallet = $._wallet;
|
156
|
-
uint256 currentBalance = $._token.balanceOf(currentWallet);
|
157
|
-
|
158
|
-
// checks
|
159
|
-
if (newWallet == address(0)) {
|
160
|
-
revert ErrorComponentWalletAddressZero();
|
161
|
-
}
|
162
|
-
if (newWallet == currentWallet) {
|
163
|
-
revert ErrorComponentWalletAddressIsSameAsCurrent(newWallet);
|
164
|
-
}
|
165
|
-
|
166
|
-
if (currentBalance > 0) {
|
167
|
-
if (currentWallet == address(this)) {
|
168
|
-
// move tokens from component smart contract to external wallet
|
169
|
-
} else {
|
170
|
-
// move tokens from external wallet to component smart contract or another external wallet
|
171
|
-
uint256 allowance = $._token.allowance(currentWallet, address(this));
|
172
|
-
if (allowance < currentBalance) {
|
173
|
-
revert ErrorComponentWalletAllowanceTooSmall(currentWallet, newWallet, allowance, currentBalance);
|
174
|
-
}
|
175
|
-
}
|
176
|
-
}
|
177
|
-
|
178
|
-
// effects
|
179
|
-
$._wallet = newWallet;
|
180
|
-
emit LogComponentWalletAddressChanged(newWallet);
|
181
|
-
|
182
|
-
// interactions
|
183
|
-
if (currentBalance > 0) {
|
184
|
-
// transfer tokens from current wallet to new wallet
|
185
|
-
if (currentWallet == address(this)) {
|
186
|
-
// transferFrom requires self allowance too
|
187
|
-
$._token.approve(address(this), currentBalance);
|
188
|
-
}
|
189
|
-
|
190
|
-
SafeERC20.safeTransferFrom($._token, currentWallet, newWallet, currentBalance);
|
191
|
-
emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
|
192
|
-
}
|
193
|
-
}
|
194
|
-
|
195
|
-
function getWallet()
|
196
|
-
public
|
197
|
-
view
|
198
|
-
override
|
199
|
-
returns (address walletAddress)
|
200
|
-
{
|
201
|
-
return _getComponentStorage()._wallet;
|
202
|
-
}
|
203
|
-
|
204
|
-
function getToken() public view override returns (IERC20Metadata token) {
|
205
|
-
return _getComponentStorage()._token;
|
206
|
-
}
|
207
|
-
|
208
|
-
function isNftInterceptor() public view override returns(bool isInterceptor) {
|
209
|
-
return _getComponentStorage()._isNftInterceptor;
|
210
|
-
}
|
211
|
-
|
212
|
-
function getInstance() public view override returns (IInstance instance) {
|
213
|
-
return _getComponentStorage()._instance;
|
214
|
-
}
|
215
|
-
|
216
|
-
function getInstanceReader() public view returns (InstanceReader reader) {
|
217
|
-
return _getComponentStorage()._instanceReader;
|
218
|
-
}
|
219
|
-
|
220
|
-
function getServiceAddress(ObjectType domain) public view returns (address service) {
|
221
|
-
VersionPart majorVersion = getInstance().getMajorVersion();
|
222
|
-
return getRegistry().getServiceAddress(domain, majorVersion);
|
223
|
-
}
|
224
|
-
|
225
|
-
function getName() public view override returns(string memory name) {
|
226
|
-
return _getComponentStorage()._name;
|
227
|
-
}
|
228
|
-
|
229
|
-
function getProductNftId() public view override returns (NftId productNftId) {
|
230
|
-
return _getComponentStorage()._productNftId;
|
231
|
-
}
|
232
|
-
|
233
|
-
function getInstanceService() public view returns (IInstanceService) {
|
234
|
-
return _getComponentStorage()._instanceService;
|
235
|
-
}
|
236
|
-
|
237
|
-
function getProductService() public view returns (IProductService) {
|
238
|
-
return _getComponentStorage()._productService;
|
239
|
-
}
|
240
|
-
|
241
|
-
}
|
@@ -1,54 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
-
|
6
|
-
import {IInstance} from "../instance/IInstance.sol";
|
7
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
8
|
-
import {IProductService} from "../instance/service/IProductService.sol";
|
9
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
10
|
-
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
11
|
-
import {NftId} from "../types/NftId.sol";
|
12
|
-
import {ObjectType} from "../types/ObjectType.sol";
|
13
|
-
|
14
|
-
interface IComponent is
|
15
|
-
IRegisterable,
|
16
|
-
ITransferInterceptor
|
17
|
-
{
|
18
|
-
|
19
|
-
error ErrorComponentNotChainNft(address caller);
|
20
|
-
error ErrorComponentNotProductService(address caller);
|
21
|
-
error ErrorComponentNotInstance(NftId instanceNftId, address instance);
|
22
|
-
error ErrorComponentProductNftAlreadySet();
|
23
|
-
error ErrorComponentWalletAddressZero();
|
24
|
-
error ErrorComponentWalletAddressIsSameAsCurrent(address newWallet);
|
25
|
-
error ErrorComponentWalletAllowanceTooSmall(address oldWallet, address newWallet, uint256 allowance, uint256 balance);
|
26
|
-
error ErrorComponentUnauthorized(address caller, uint64 requiredRoleIdNum);
|
27
|
-
|
28
|
-
event LogComponentWalletAddressChanged(address newWallet);
|
29
|
-
event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
|
30
|
-
|
31
|
-
function getName() external view returns (string memory name);
|
32
|
-
|
33
|
-
function lock() external;
|
34
|
-
function unlock() external;
|
35
|
-
|
36
|
-
function getToken() external view returns (IERC20Metadata token);
|
37
|
-
|
38
|
-
function setWallet(address walletAddress) external;
|
39
|
-
function getWallet() external view returns (address walletAddress);
|
40
|
-
|
41
|
-
function isNftInterceptor() external view returns(bool isInterceptor);
|
42
|
-
|
43
|
-
function getInstance() external view returns (IInstance instance);
|
44
|
-
|
45
|
-
/// @dev returns the service address for the specified domain
|
46
|
-
/// gets address via lookup from registry using the major version form the linked instance
|
47
|
-
function getServiceAddress(ObjectType domain) external view returns (address service);
|
48
|
-
|
49
|
-
function setProductNftId(NftId productNftId) external;
|
50
|
-
function getProductNftId() external view returns (NftId productNftId);
|
51
|
-
|
52
|
-
function getInstanceService() external view returns (IInstanceService);
|
53
|
-
function getProductService() external view returns (IProductService);
|
54
|
-
}
|
@@ -1,87 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {Fee} from "../types/Fee.sol";
|
5
|
-
import {IComponent} from "./IComponent.sol";
|
6
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
7
|
-
import {NftId} from "../types/NftId.sol";
|
8
|
-
import {UFixed} from "../types/UFixed.sol";
|
9
|
-
|
10
|
-
/// @dev pool components hold and manage the collateral to cover active policies
|
11
|
-
/// pools come in different flavors
|
12
|
-
interface IPoolComponent is IComponent {
|
13
|
-
|
14
|
-
event LogUnderwrittenByPool(NftId policyNftId, uint256 collateralizationAmount, address pool);
|
15
|
-
|
16
|
-
error ErrorPoolNotPoolService(address service);
|
17
|
-
|
18
|
-
function getSetupInfo() external view returns (ISetup.PoolSetupInfo memory setupInfo);
|
19
|
-
|
20
|
-
function setFees(
|
21
|
-
Fee memory poolFee,
|
22
|
-
Fee memory stakingFee,
|
23
|
-
Fee memory performanceFee
|
24
|
-
) external;
|
25
|
-
|
26
|
-
/// @dev sets an additional bundle fee, this fee is added on top of the poolFee and deducted from the premium amounts.
|
27
|
-
/// via these fees individual bundler owner may earn income per policy in the context of peer to peer pools
|
28
|
-
function setBundleFee(
|
29
|
-
NftId bundleNftId,
|
30
|
-
Fee memory fee
|
31
|
-
) external;
|
32
|
-
|
33
|
-
/// @dev this is a callback function that is called by the product service when underwriting a policy.
|
34
|
-
/// the pool has the option to check the details and object to underwriting by reverting.
|
35
|
-
/// the function is only called for "active" pools that ask to be involved/notified
|
36
|
-
/// by product related state changes.
|
37
|
-
function verifyApplication(
|
38
|
-
NftId applicationNftId,
|
39
|
-
bytes memory policyData,
|
40
|
-
bytes memory bundleFilter,
|
41
|
-
uint256 collateralizationAmount
|
42
|
-
) external;
|
43
|
-
|
44
|
-
function lockBundle(NftId bundleNftId) external;
|
45
|
-
|
46
|
-
function unlockBundle(NftId bundleNftId) external;
|
47
|
-
|
48
|
-
/// @dev defines the multiplier to calculate the required collateral to cover a given sum insured amount
|
49
|
-
/// default implementation returns 100%
|
50
|
-
function getCollateralizationLevel() external view returns (UFixed collateralizationLevel);
|
51
|
-
|
52
|
-
/// @dev defines the amount of collateral held in the pool.
|
53
|
-
/// if the value is < 100% the pool is required to hold a policy that covers the locally missing collateral
|
54
|
-
/// default implementation returns 100%
|
55
|
-
function getRetentionLevel() external view returns (UFixed retentionLevel);
|
56
|
-
|
57
|
-
/// @dev declares if pool intercept transfers of bundle nft ids
|
58
|
-
/// - yes: pool may block transfer of bundle ownership or simply updates some bookkeeping related to bundle ownership. callback function is nftTransferFrom
|
59
|
-
/// - no: pool is not involved in transfer of bundle ownership
|
60
|
-
/// default implementation returns false (no)
|
61
|
-
function isInterceptingBundleTransfers() external view returns (bool);
|
62
|
-
|
63
|
-
/// @dev declares if pool relies on external management of collateral (yes/no):
|
64
|
-
/// - yes: underwriting of new policies does not require an actual token balance, instead it is assumed that the pool owner will manage funds externally and inject enough tokens to allow process confirmed payouts
|
65
|
-
/// - no: the pool smart contract ensures that the necessary capacity of the pool prior to underwriting.
|
66
|
-
/// default implementation returns false (no)
|
67
|
-
function isExternallyManaged() external view returns (bool);
|
68
|
-
|
69
|
-
/// @dev declares if pool component is actively involved in underwriting (yes/no):
|
70
|
-
/// - yes: verifying pools components actively confirm underwriting applications, ie the pool component logic explicitly needs to confirm the locking of collateral to cover the sum insured of the policy
|
71
|
-
/// - no: underwriting a policy does not require any interaction with the pool component if the covering bundle can provide the necessary captial
|
72
|
-
/// default implementation returnsfalse (no)
|
73
|
-
function isVerifyingApplications() external view returns (bool);
|
74
|
-
|
75
|
-
/// @dev returns true iff the policy application data in policyData matches
|
76
|
-
/// with the bundle filter criteria encoded in bundleFilter
|
77
|
-
/// this is a callback function that is only called if a pool declares itself as a verifying pool
|
78
|
-
/// default implementation returns true
|
79
|
-
function policyMatchesBundle(
|
80
|
-
bytes memory policyData,
|
81
|
-
bytes memory bundleFilter
|
82
|
-
)
|
83
|
-
external
|
84
|
-
view
|
85
|
-
returns (bool isMatching);
|
86
|
-
|
87
|
-
}
|
@@ -1,39 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {Fee} from "../types/Fee.sol";
|
5
|
-
import {IComponent} from "./IComponent.sol";
|
6
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
7
|
-
import {NftId} from "../types/NftId.sol";
|
8
|
-
import {ReferralId} from "../types/Referral.sol";
|
9
|
-
import {RiskId} from "../types/RiskId.sol";
|
10
|
-
|
11
|
-
interface IProductComponent is IComponent {
|
12
|
-
|
13
|
-
function getSetupInfo() external view returns (ISetup.ProductSetupInfo memory setupInfo);
|
14
|
-
|
15
|
-
function setFees(
|
16
|
-
Fee memory productFee,
|
17
|
-
Fee memory processingFee
|
18
|
-
) external;
|
19
|
-
|
20
|
-
function calculatePremium(
|
21
|
-
uint256 sumInsuredAmount,
|
22
|
-
RiskId riskId,
|
23
|
-
uint256 lifetime,
|
24
|
-
bytes memory applicationData,
|
25
|
-
NftId bundleNftId,
|
26
|
-
ReferralId referralId
|
27
|
-
) external view returns (uint256 premiumAmount);
|
28
|
-
|
29
|
-
function calculateNetPremium(
|
30
|
-
uint256 sumInsuredAmount,
|
31
|
-
RiskId riskId,
|
32
|
-
uint256 lifetime,
|
33
|
-
bytes memory applicationData
|
34
|
-
) external view returns (uint256 netPremiumAmount);
|
35
|
-
|
36
|
-
|
37
|
-
function getPoolNftId() external view returns (NftId poolNftId);
|
38
|
-
function getDistributionNftId() external view returns (NftId distributionNftId);
|
39
|
-
}
|
@@ -1,254 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {POOL} from "../types/ObjectType.sol";
|
5
|
-
import {IPoolService} from "../instance/service/IPoolService.sol";
|
6
|
-
import {IBundleService} from "../instance/service/IBundleService.sol";
|
7
|
-
import {NftId, NftIdLib} from "../types/NftId.sol";
|
8
|
-
import {Fee, FeeLib} from "../types/Fee.sol";
|
9
|
-
import {UFixed} from "../types/UFixed.sol";
|
10
|
-
import {IPoolComponent} from "./IPoolComponent.sol";
|
11
|
-
import {Component} from "./Component.sol";
|
12
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
13
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
14
|
-
|
15
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
16
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
17
|
-
|
18
|
-
|
19
|
-
abstract contract Pool is
|
20
|
-
Component,
|
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
|
-
UFixed _collateralizationLevel;
|
28
|
-
UFixed _retentionLevel;
|
29
|
-
|
30
|
-
bool _isExternallyManaged;
|
31
|
-
bool _isInterceptingBundleTransfers;
|
32
|
-
bool _isVerifyingApplications;
|
33
|
-
|
34
|
-
Fee _initialPoolFee;
|
35
|
-
Fee _initialStakingFee;
|
36
|
-
Fee _initialPerformanceFee;
|
37
|
-
|
38
|
-
TokenHandler _tokenHandler;
|
39
|
-
|
40
|
-
// may be used to interact with instance by derived contracts
|
41
|
-
IPoolService _poolService;
|
42
|
-
IBundleService _bundleService;
|
43
|
-
}
|
44
|
-
|
45
|
-
modifier onlyPoolService() {
|
46
|
-
if(msg.sender != address(_getPoolStorage()._poolService)) {
|
47
|
-
revert ErrorPoolNotPoolService(msg.sender);
|
48
|
-
}
|
49
|
-
_;
|
50
|
-
}
|
51
|
-
|
52
|
-
|
53
|
-
function initializePool(
|
54
|
-
address registry,
|
55
|
-
NftId instanceNftId,
|
56
|
-
string memory name,
|
57
|
-
// TODO refactor into tokenNftId
|
58
|
-
address token,
|
59
|
-
bool isInterceptingNftTransfers,
|
60
|
-
bool isExternallyManaging,
|
61
|
-
bool isVerifying,
|
62
|
-
UFixed collateralizationLevel,
|
63
|
-
UFixed retentionLevel,
|
64
|
-
address initialOwner,
|
65
|
-
bytes memory data
|
66
|
-
)
|
67
|
-
public
|
68
|
-
virtual
|
69
|
-
onlyInitializing()
|
70
|
-
{
|
71
|
-
initializeComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, data);
|
72
|
-
|
73
|
-
PoolStorage storage $ = _getPoolStorage();
|
74
|
-
// TODO add validation
|
75
|
-
$._tokenHandler = new TokenHandler(token);
|
76
|
-
$._isExternallyManaged = isExternallyManaging;
|
77
|
-
$._isVerifyingApplications = isVerifying;
|
78
|
-
$._collateralizationLevel = collateralizationLevel;
|
79
|
-
$._retentionLevel = retentionLevel;
|
80
|
-
$._initialPoolFee = FeeLib.zeroFee();
|
81
|
-
$._initialStakingFee = FeeLib.zeroFee();
|
82
|
-
$._initialPerformanceFee = FeeLib.zeroFee();
|
83
|
-
$._poolService = getInstance().getPoolService();
|
84
|
-
$._bundleService = getInstance().getBundleService();
|
85
|
-
|
86
|
-
registerInterface(type(IPoolComponent).interfaceId);
|
87
|
-
}
|
88
|
-
|
89
|
-
/**
|
90
|
-
* @dev see {IPool.verifyApplication}.
|
91
|
-
* Default implementation that only writes a {LogUnderwrittenByPool} entry.
|
92
|
-
*/
|
93
|
-
function verifyApplication(
|
94
|
-
NftId applicationNftId,
|
95
|
-
bytes memory applicationData,
|
96
|
-
bytes memory bundleFilter,
|
97
|
-
uint256 collateralizationAmount
|
98
|
-
)
|
99
|
-
external
|
100
|
-
restricted()
|
101
|
-
virtual override
|
102
|
-
{
|
103
|
-
require(
|
104
|
-
policyMatchesBundle(applicationData, bundleFilter),
|
105
|
-
"ERROR:POL-020:POLICY_BUNDLE_MISMATCH"
|
106
|
-
);
|
107
|
-
|
108
|
-
emit LogUnderwrittenByPool(applicationNftId, collateralizationAmount, address(this));
|
109
|
-
}
|
110
|
-
|
111
|
-
|
112
|
-
function isInterceptingBundleTransfers() external view override returns (bool) {
|
113
|
-
return isNftInterceptor();
|
114
|
-
}
|
115
|
-
|
116
|
-
|
117
|
-
function isExternallyManaged() external view override returns (bool) {
|
118
|
-
return _getPoolStorage()._isExternallyManaged;
|
119
|
-
}
|
120
|
-
|
121
|
-
|
122
|
-
function getRetentionLevel() external view override returns (UFixed retentionLevel) {
|
123
|
-
return _getPoolStorage()._retentionLevel;
|
124
|
-
}
|
125
|
-
|
126
|
-
|
127
|
-
function getCollateralizationLevel() external view override returns (UFixed collateralizationLevel) {
|
128
|
-
return _getPoolStorage()._collateralizationLevel;
|
129
|
-
}
|
130
|
-
|
131
|
-
|
132
|
-
function isVerifyingApplications() external view override returns (bool isConfirmingApplication) {
|
133
|
-
return _getPoolStorage()._isVerifyingApplications;
|
134
|
-
}
|
135
|
-
|
136
|
-
|
137
|
-
/// @dev see {IPoolComponent.policyMatchesBundle}.
|
138
|
-
/// Default implementation always returns true
|
139
|
-
function policyMatchesBundle(
|
140
|
-
bytes memory, // policyData
|
141
|
-
bytes memory // bundleFilter
|
142
|
-
)
|
143
|
-
public
|
144
|
-
pure
|
145
|
-
virtual override
|
146
|
-
returns (bool isMatching)
|
147
|
-
{
|
148
|
-
return true;
|
149
|
-
}
|
150
|
-
|
151
|
-
|
152
|
-
function setFees(
|
153
|
-
Fee memory poolFee,
|
154
|
-
Fee memory stakingFee,
|
155
|
-
Fee memory performanceFee
|
156
|
-
)
|
157
|
-
external
|
158
|
-
onlyOwner
|
159
|
-
restricted()
|
160
|
-
override
|
161
|
-
{
|
162
|
-
_getPoolStorage()._poolService.setFees(poolFee, stakingFee, performanceFee);
|
163
|
-
}
|
164
|
-
|
165
|
-
function setBundleFee(
|
166
|
-
NftId bundleNftId,
|
167
|
-
Fee memory fee
|
168
|
-
)
|
169
|
-
external
|
170
|
-
override
|
171
|
-
// TODO add onlyBundleOwner
|
172
|
-
{
|
173
|
-
_getPoolStorage()._bundleService.setBundleFee(bundleNftId, fee);
|
174
|
-
}
|
175
|
-
|
176
|
-
function lockBundle(
|
177
|
-
NftId bundleNftId
|
178
|
-
)
|
179
|
-
external
|
180
|
-
override
|
181
|
-
// TODO add onlyBundleOwner
|
182
|
-
{
|
183
|
-
_getPoolStorage()._bundleService.lockBundle(bundleNftId);
|
184
|
-
}
|
185
|
-
|
186
|
-
function unlockBundle(
|
187
|
-
NftId bundleNftId
|
188
|
-
)
|
189
|
-
external
|
190
|
-
override
|
191
|
-
// TODO add onlyBundleOwner
|
192
|
-
{
|
193
|
-
_getPoolStorage()._bundleService.unlockBundle(bundleNftId);
|
194
|
-
}
|
195
|
-
|
196
|
-
function getSetupInfo() public view returns (ISetup.PoolSetupInfo memory setupInfo) {
|
197
|
-
InstanceReader reader = getInstance().getInstanceReader();
|
198
|
-
setupInfo = reader.getPoolSetupInfo(getNftId());
|
199
|
-
|
200
|
-
// fallback to initial setup info (wallet is always != address(0))
|
201
|
-
if(setupInfo.wallet == address(0)) {
|
202
|
-
setupInfo = _getInitialSetupInfo();
|
203
|
-
}
|
204
|
-
}
|
205
|
-
|
206
|
-
function _getInitialSetupInfo() internal view returns (ISetup.PoolSetupInfo memory) {
|
207
|
-
PoolStorage storage $ = _getPoolStorage();
|
208
|
-
return ISetup.PoolSetupInfo(
|
209
|
-
getProductNftId(),
|
210
|
-
$._tokenHandler,
|
211
|
-
isNftInterceptor(),
|
212
|
-
$._isExternallyManaged,
|
213
|
-
$._isVerifyingApplications,
|
214
|
-
$._collateralizationLevel,
|
215
|
-
$._retentionLevel,
|
216
|
-
$._initialPoolFee,
|
217
|
-
$._initialStakingFee,
|
218
|
-
$._initialPerformanceFee,
|
219
|
-
getWallet()
|
220
|
-
);
|
221
|
-
}
|
222
|
-
|
223
|
-
// Internals
|
224
|
-
|
225
|
-
function _createBundle(
|
226
|
-
address bundleOwner,
|
227
|
-
Fee memory fee,
|
228
|
-
uint256 amount,
|
229
|
-
uint256 lifetime,
|
230
|
-
bytes memory filter
|
231
|
-
)
|
232
|
-
internal
|
233
|
-
returns(NftId bundleNftId)
|
234
|
-
{
|
235
|
-
bundleNftId = _getPoolStorage()._bundleService.createBundle(
|
236
|
-
bundleOwner,
|
237
|
-
fee,
|
238
|
-
amount,
|
239
|
-
lifetime,
|
240
|
-
filter);
|
241
|
-
|
242
|
-
// TODO add logging
|
243
|
-
}
|
244
|
-
|
245
|
-
function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
|
246
|
-
return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
|
247
|
-
}
|
248
|
-
|
249
|
-
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
250
|
-
assembly {
|
251
|
-
$.slot := POOL_STORAGE_LOCATION_V1
|
252
|
-
}
|
253
|
-
}
|
254
|
-
}
|