@etherisc/gif-next 0.0.2-8dd2f76-992 → 0.0.2-8e4a894-109
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/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +61 -14
- 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/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +45 -14
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +24 -274
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +6 -6
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +309 -2023
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +21 -38
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +407 -2759
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +71 -53
- 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 +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +343 -63
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -265
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +39 -124
- 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/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
- 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 +61 -12
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +8 -8
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol}/ObjectManager.json +3 -3
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.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/{instance/service → pool}/IBundleService.sol/IBundleService.json +105 -29
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +56 -25
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +270 -37
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +56 -25
- 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/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +119 -101
- 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/{instance/service → product}/IPolicyService.sol/IPolicyService.json +129 -84
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +63 -175
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +53 -22
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +6 -14
- 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/{components → product}/Product.sol/Product.json +53 -22
- 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/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +5 -13
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +6 -6
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +4 -4
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +21 -29
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -40
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +9 -9
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +14 -27
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +3 -3
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +38 -7
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ComponentService.sol/ComponentService.json +38 -14
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +38 -7
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +0 -13
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +69 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +0 -13
- 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 +5 -13
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +8 -21
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +80 -26
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +20 -33
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -21
- 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 +5 -13
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -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/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/{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/{types → type}/NftId.sol/NftIdLib.json +5 -5
- 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/{types → type}/Referral.sol/ReferralLib.json +5 -5
- 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/{types → type}/Seconds.sol/SecondsLib.json +3 -3
- 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 +20 -7
- 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 +21 -16
- package/contracts/{instance/service → distribution}/DistributionService.sol +91 -178
- package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +5 -5
- package/contracts/{components → distribution}/IDistributionComponent.sol +7 -7
- package/contracts/{instance/service → distribution}/IDistributionService.sol +18 -30
- package/contracts/instance/BundleManager.sol +8 -9
- package/contracts/instance/IInstance.sol +43 -64
- package/contracts/instance/IInstanceService.sol +18 -17
- package/contracts/instance/Instance.sol +116 -214
- package/contracts/instance/InstanceAccessManager.sol +38 -24
- package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
- package/contracts/instance/InstanceReader.sol +95 -18
- package/contracts/instance/InstanceService.sol +97 -284
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +211 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
- package/contracts/instance/base/IKeyValueStore.sol +14 -10
- package/contracts/instance/base/ILifecycle.sol +3 -3
- package/contracts/instance/base/KeyValueStore.sol +31 -43
- package/contracts/instance/base/Lifecycle.sol +16 -5
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +7 -7
- package/contracts/instance/module/IAccess.sol +2 -2
- package/contracts/instance/module/IBundle.sol +5 -5
- package/contracts/instance/module/IComponents.sol +8 -8
- package/contracts/instance/module/IDistribution.sol +7 -6
- package/contracts/instance/module/IPolicy.sol +19 -14
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/instance/module/ISetup.sol +4 -4
- package/contracts/instance/module/ITreasury.sol +2 -2
- package/contracts/{instance/service → pool}/BundleService.sol +101 -150
- package/contracts/{instance/service → pool}/BundleServiceManager.sol +5 -5
- package/contracts/{instance/service → pool}/IBundleService.sol +43 -18
- package/contracts/{components → pool}/IPoolComponent.sol +14 -13
- package/contracts/{instance/service → pool}/IPoolService.sol +28 -13
- package/contracts/{components → pool}/Pool.sol +20 -21
- package/contracts/{instance/service → pool}/PoolService.sol +153 -53
- package/contracts/{instance/service → pool}/PoolServiceManager.sol +5 -5
- package/contracts/product/ApplicationService.sol +186 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +2 -2
- package/contracts/product/ClaimService.sol +437 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +2 -2
- package/contracts/{instance/service → product}/IApplicationService.sol +14 -34
- package/contracts/product/IClaimService.sol +90 -0
- package/contracts/{instance/service → product}/IPolicyService.sol +34 -26
- package/contracts/product/IPricingService.sol +37 -0
- package/contracts/{components → product}/IProductComponent.sol +11 -10
- package/contracts/{instance/service → product}/IProductService.sol +10 -10
- package/contracts/{instance/service → product}/PolicyService.sol +152 -138
- package/contracts/{instance/service → product}/PolicyServiceManager.sol +5 -5
- package/contracts/product/PricingService.sol +275 -0
- package/contracts/product/PricingServiceManager.sol +51 -0
- package/contracts/{components → product}/Product.sol +156 -74
- package/contracts/{instance/service → product}/ProductService.sol +46 -46
- package/contracts/{instance/service → product}/ProductServiceManager.sol +5 -5
- package/contracts/registry/IRegistry.sol +4 -4
- package/contracts/registry/IRegistryService.sol +4 -6
- package/contracts/registry/Registry.sol +3 -3
- package/contracts/registry/RegistryAccessManager.sol +1 -1
- package/contracts/registry/RegistryService.sol +23 -20
- package/contracts/registry/RegistryServiceManager.sol +0 -2
- package/contracts/registry/ReleaseManager.sol +5 -5
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/{components → shared}/Component.sol +26 -8
- package/contracts/{instance/base → shared}/ComponentService.sol +63 -34
- package/contracts/{components → shared}/IComponent.sol +19 -5
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +24 -10
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +3 -1
- package/contracts/shared/IVersionable.sol +1 -1
- package/contracts/shared/NftOwnable.sol +1 -3
- package/contracts/shared/PolicyHolder.sol +31 -18
- package/contracts/shared/ProxyManager.sol +3 -3
- package/contracts/shared/Registerable.sol +12 -11
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/Service.sol +3 -3
- package/contracts/shared/TokenHandler.sol +4 -2
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/staking/IStakingService.sol +102 -0
- package/contracts/staking/StakeingServiceManager.sol +37 -0
- package/contracts/staking/StakingService.sol +166 -0
- package/contracts/{types → type}/Amount.sol +49 -0
- package/contracts/{types → type}/ClaimId.sol +25 -2
- package/contracts/{types → type}/Fee.sol +7 -6
- package/contracts/{types → type}/NftIdSet.sol +1 -1
- package/contracts/{types → type}/ObjectType.sol +10 -5
- package/contracts/{types → type}/PayoutId.sol +33 -5
- package/contracts/{types → type}/StateId.sol +6 -2
- package/contracts/{types → type}/Timestamp.sol +5 -0
- package/package.json +1 -1
- 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/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
- 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/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
- 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 -596
- 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/Amount.sol/AmountLib.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
- 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/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 -288
- 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/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/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.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/instance/service/ApplicationService.sol +0 -350
- package/contracts/instance/service/ClaimService.sol +0 -151
- package/contracts/instance/service/IClaimService.sol +0 -61
- 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/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/NumberId.sol +0 -52
- /package/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol +0 -0
- /package/contracts/{types → type}/AddressSet.sol +0 -0
- /package/contracts/{types → type}/Blocknumber.sol +0 -0
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/NftId.sol +0 -0
- /package/contracts/{types → type}/Referral.sol +0 -0
- /package/contracts/{types → type}/RiskId.sol +0 -0
- /package/contracts/{types → type}/RoleId.sol +0 -0
- /package/contracts/{types → type}/Seconds.sol +0 -0
- /package/contracts/{types → type}/UFixed.sol +0 -0
- /package/contracts/{types → type}/Version.sol +0 -0
@@ -0,0 +1,211 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
+
|
6
|
+
import {Key32, KeyId, Key32Lib} from "../type/Key32.sol";
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
9
|
+
import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
|
10
|
+
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
11
|
+
import {RoleId, RoleIdLib, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
|
12
|
+
import {StateId, ACTIVE} from "../type/StateId.sol";
|
13
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
14
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
15
|
+
import {ReferralId} from "../type/Referral.sol";
|
16
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
17
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
18
|
+
|
19
|
+
import {IInstance} from "./IInstance.sol";
|
20
|
+
import {KeyValueStore} from "./base/KeyValueStore.sol";
|
21
|
+
import {IKeyValueStore} from "./base/KeyValueStore.sol";
|
22
|
+
|
23
|
+
import {IBundle} from "./module/IBundle.sol";
|
24
|
+
import {IComponents} from "./module/IComponents.sol";
|
25
|
+
import {IDistribution} from "./module/IDistribution.sol";
|
26
|
+
import {IPolicy} from "./module/IPolicy.sol";
|
27
|
+
import {IRisk} from "./module/IRisk.sol";
|
28
|
+
import {ISetup} from "./module/ISetup.sol";
|
29
|
+
|
30
|
+
|
31
|
+
// TODO combine with instance reader?
|
32
|
+
contract InstanceStore is AccessManagedUpgradeable, KeyValueStore
|
33
|
+
{
|
34
|
+
function initialize(address instance)
|
35
|
+
public
|
36
|
+
initializer()
|
37
|
+
{
|
38
|
+
address authority = IInstance(instance).authority();
|
39
|
+
__AccessManaged_init(authority);
|
40
|
+
initializeLifecycle();
|
41
|
+
}
|
42
|
+
|
43
|
+
//--- ProductSetup ------------------------------------------------------//
|
44
|
+
function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
|
45
|
+
create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
|
46
|
+
}
|
47
|
+
|
48
|
+
function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external restricted() {
|
49
|
+
update(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup), newState);
|
50
|
+
}
|
51
|
+
|
52
|
+
function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
|
53
|
+
updateState(_toNftKey32(productNftId, PRODUCT()), newState);
|
54
|
+
}
|
55
|
+
|
56
|
+
//--- DistributionSetup ------------------------------------------------------//
|
57
|
+
function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external restricted() {
|
58
|
+
create(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup));
|
59
|
+
}
|
60
|
+
|
61
|
+
function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external restricted() {
|
62
|
+
update(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup), newState);
|
63
|
+
}
|
64
|
+
|
65
|
+
function updateDistributionSetupState(NftId distributionNftId, StateId newState) external restricted() {
|
66
|
+
updateState(_toNftKey32(distributionNftId, DISTRIBUTION()), newState);
|
67
|
+
}
|
68
|
+
|
69
|
+
//--- PoolSetup ------------------------------------------------------//
|
70
|
+
function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external restricted() {
|
71
|
+
create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
|
72
|
+
}
|
73
|
+
|
74
|
+
function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external restricted() {
|
75
|
+
update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
|
76
|
+
}
|
77
|
+
|
78
|
+
function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
|
79
|
+
updateState(_toNftKey32(poolNftId, POOL()), newState);
|
80
|
+
}
|
81
|
+
|
82
|
+
//--- DistributorType -------------------------------------------------------//
|
83
|
+
function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
|
84
|
+
create(distributorType.toKey32(), abi.encode(info));
|
85
|
+
}
|
86
|
+
|
87
|
+
function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
|
88
|
+
update(distributorType.toKey32(), abi.encode(info), newState);
|
89
|
+
}
|
90
|
+
|
91
|
+
function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
|
92
|
+
updateState(distributorType.toKey32(), newState);
|
93
|
+
}
|
94
|
+
|
95
|
+
//--- Distributor -------------------------------------------------------//
|
96
|
+
function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
|
97
|
+
create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
|
98
|
+
}
|
99
|
+
|
100
|
+
function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
|
101
|
+
update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
|
102
|
+
}
|
103
|
+
|
104
|
+
function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
|
105
|
+
updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
|
106
|
+
}
|
107
|
+
|
108
|
+
//--- Referral ----------------------------------------------------------//
|
109
|
+
function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
|
110
|
+
create(referralId.toKey32(), abi.encode(referralInfo));
|
111
|
+
}
|
112
|
+
|
113
|
+
function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
|
114
|
+
update(referralId.toKey32(), abi.encode(referralInfo), newState);
|
115
|
+
}
|
116
|
+
|
117
|
+
function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
|
118
|
+
updateState(referralId.toKey32(), newState);
|
119
|
+
}
|
120
|
+
|
121
|
+
//--- Bundle ------------------------------------------------------------//
|
122
|
+
function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
|
123
|
+
create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
|
124
|
+
}
|
125
|
+
|
126
|
+
function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
|
127
|
+
update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
|
128
|
+
}
|
129
|
+
|
130
|
+
function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
|
131
|
+
updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
|
132
|
+
}
|
133
|
+
|
134
|
+
//--- Risk --------------------------------------------------------------//
|
135
|
+
function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
|
136
|
+
create(riskId.toKey32(), abi.encode(risk));
|
137
|
+
}
|
138
|
+
|
139
|
+
function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
|
140
|
+
update(riskId.toKey32(), abi.encode(risk), newState);
|
141
|
+
}
|
142
|
+
|
143
|
+
function updateRiskState(RiskId riskId, StateId newState) external restricted() {
|
144
|
+
updateState(riskId.toKey32(), newState);
|
145
|
+
}
|
146
|
+
|
147
|
+
//--- Application (Policy) ----------------------------------------------//
|
148
|
+
function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
|
149
|
+
create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
|
150
|
+
}
|
151
|
+
|
152
|
+
function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
153
|
+
update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
|
154
|
+
}
|
155
|
+
|
156
|
+
function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
|
157
|
+
updateState(_toNftKey32(applicationNftId, POLICY()), newState);
|
158
|
+
}
|
159
|
+
|
160
|
+
//--- Policy ------------------------------------------------------------//
|
161
|
+
function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
162
|
+
update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
|
163
|
+
}
|
164
|
+
|
165
|
+
function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
166
|
+
update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
|
167
|
+
}
|
168
|
+
|
169
|
+
function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
|
170
|
+
updateState(_toNftKey32(policyNftId, POLICY()), newState);
|
171
|
+
}
|
172
|
+
|
173
|
+
//--- Claim -------------------------------------------------------------//
|
174
|
+
function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
|
175
|
+
create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
|
176
|
+
}
|
177
|
+
|
178
|
+
function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
|
179
|
+
update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
|
180
|
+
}
|
181
|
+
|
182
|
+
function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
|
183
|
+
updateState(_toClaimKey32(policyNftId, claimId), newState);
|
184
|
+
}
|
185
|
+
|
186
|
+
//--- Payout ------------------------------------------------------------//
|
187
|
+
function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
188
|
+
create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
|
189
|
+
}
|
190
|
+
|
191
|
+
function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
|
192
|
+
update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
|
193
|
+
}
|
194
|
+
|
195
|
+
function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
|
196
|
+
updateState(_toPayoutKey32(policyNftId, payoutId), newState);
|
197
|
+
}
|
198
|
+
|
199
|
+
//--- internal view/pure functions --------------------------------------//
|
200
|
+
function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
|
201
|
+
return nftId.toKey32(objectType);
|
202
|
+
}
|
203
|
+
|
204
|
+
function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
|
205
|
+
return claimId.toKey32(policyNftId);
|
206
|
+
}
|
207
|
+
|
208
|
+
function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
|
209
|
+
return payoutId.toKey32(policyNftId);
|
210
|
+
}
|
211
|
+
}
|
@@ -4,7 +4,7 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
5
|
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
6
6
|
|
7
|
-
import {IRegistry} from "
|
7
|
+
import {IRegistry} from "../../registry/IRegistry.sol";
|
8
8
|
|
9
9
|
abstract contract Cloneable is
|
10
10
|
AccessManagedUpgradeable
|
@@ -1,17 +1,25 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Blocknumber, blockBlocknumber, zeroBlocknumber} from "../../
|
5
|
-
import {Key32, KeyId} from "../../
|
6
|
-
import {NftId} from "../../
|
7
|
-
import {ObjectType} from "../../
|
8
|
-
import {StateId} from "../../
|
4
|
+
import {Blocknumber, blockBlocknumber, zeroBlocknumber} from "../../type/Blocknumber.sol";
|
5
|
+
import {Key32, KeyId} from "../../type/Key32.sol";
|
6
|
+
import {NftId} from "../../type/NftId.sol";
|
7
|
+
import {ObjectType} from "../../type/ObjectType.sol";
|
8
|
+
import {StateId} from "../../type/StateId.sol";
|
9
9
|
|
10
10
|
import {ILifecycle} from "./ILifecycle.sol";
|
11
11
|
|
12
|
-
// TODO remove - internal only?
|
13
12
|
interface IKeyValueStore is ILifecycle {
|
14
13
|
|
14
|
+
error ErrorKeyValueStoreTypeUndefined(ObjectType objectType);
|
15
|
+
error ErrorKeyValueStoreAlreadyCreated(Key32 key, ObjectType objectType);
|
16
|
+
error ErrorKeyValueStoreStateZero(Key32 key);
|
17
|
+
error ErrorKeyValueStoreNotExisting(Key32 key);
|
18
|
+
|
19
|
+
event LogInfoCreated(ObjectType objectType, KeyId keyId, StateId state, address createdBy, address txOrigin);
|
20
|
+
event LogInfoUpdated(ObjectType objectType, KeyId keyId, StateId state, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
21
|
+
event LogStateUpdated(ObjectType objectType, KeyId keyId, StateId stateOld, StateId stateNew, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
22
|
+
|
15
23
|
struct Value {
|
16
24
|
Metadata metadata;
|
17
25
|
bytes data;
|
@@ -29,10 +37,6 @@ interface IKeyValueStore is ILifecycle {
|
|
29
37
|
Blocknumber createdIn;
|
30
38
|
}
|
31
39
|
|
32
|
-
event LogInfoCreated(ObjectType objectType, KeyId keyId, StateId state, address createdBy, address txOrigin);
|
33
|
-
event LogInfoUpdated(ObjectType objectType, KeyId keyId, StateId state, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
34
|
-
event LogStateUpdated(ObjectType objectType, KeyId keyId, StateId stateOld, StateId stateNew, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
35
|
-
|
36
40
|
// generic state changing functions
|
37
41
|
// function create(Key32 key, bytes memory data) external;
|
38
42
|
// function update(Key32 key, bytes memory data, StateId state) external;
|
@@ -1,9 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {NftId} from "../../
|
5
|
-
import {ObjectType} from "../../
|
6
|
-
import {StateId} from "../../
|
4
|
+
import {NftId} from "../../type/NftId.sol";
|
5
|
+
import {ObjectType} from "../../type/ObjectType.sol";
|
6
|
+
import {StateId} from "../../type/StateId.sol";
|
7
7
|
|
8
8
|
interface ILifecycle {
|
9
9
|
|
@@ -1,17 +1,20 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Blocknumber, blockBlocknumber, zeroBlocknumber} from "../../
|
5
|
-
import {Key32, KeyId, Key32Lib} from "../../
|
6
|
-
import {NftId} from "../../
|
7
|
-
import {ObjectType} from "../../
|
8
|
-
import {StateId, ACTIVE, KEEP_STATE} from "../../
|
9
|
-
import {Timestamp, TimestampLib} from "../../
|
4
|
+
import {Blocknumber, blockBlocknumber, zeroBlocknumber} from "../../type/Blocknumber.sol";
|
5
|
+
import {Key32, KeyId, Key32Lib} from "../../type/Key32.sol";
|
6
|
+
import {NftId} from "../../type/NftId.sol";
|
7
|
+
import {ObjectType} from "../../type/ObjectType.sol";
|
8
|
+
import {StateId, ACTIVE, KEEP_STATE} from "../../type/StateId.sol";
|
9
|
+
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
10
10
|
|
11
11
|
import {Lifecycle} from "./Lifecycle.sol";
|
12
12
|
import {IKeyValueStore} from "./IKeyValueStore.sol";
|
13
13
|
|
14
|
-
contract KeyValueStore is
|
14
|
+
contract KeyValueStore is
|
15
|
+
Lifecycle,
|
16
|
+
IKeyValueStore
|
17
|
+
{
|
15
18
|
|
16
19
|
mapping(Key32 key32 => Value value) private _value;
|
17
20
|
|
@@ -20,21 +23,16 @@ contract KeyValueStore is Lifecycle, IKeyValueStore {
|
|
20
23
|
bytes memory data
|
21
24
|
)
|
22
25
|
internal
|
23
|
-
{
|
24
|
-
_create(key32, data);
|
25
|
-
}
|
26
|
-
|
27
|
-
function _create(
|
28
|
-
Key32 key32,
|
29
|
-
bytes memory data
|
30
|
-
)
|
31
|
-
internal
|
32
26
|
{
|
33
27
|
ObjectType objectType = key32.toObjectType();
|
34
|
-
|
28
|
+
if (objectType.eqz()) {
|
29
|
+
revert ErrorKeyValueStoreTypeUndefined(objectType);
|
30
|
+
}
|
35
31
|
|
36
32
|
Metadata storage metadata = _value[key32].metadata;
|
37
|
-
|
33
|
+
if (metadata.state.gtz()) {
|
34
|
+
revert ErrorKeyValueStoreAlreadyCreated(key32, objectType);
|
35
|
+
}
|
38
36
|
|
39
37
|
address createdBy = msg.sender;
|
40
38
|
Blocknumber blocknumber = blockBlocknumber();
|
@@ -61,20 +59,15 @@ contract KeyValueStore is Lifecycle, IKeyValueStore {
|
|
61
59
|
)
|
62
60
|
internal
|
63
61
|
{
|
64
|
-
|
65
|
-
|
62
|
+
if (state.eqz()) {
|
63
|
+
revert ErrorKeyValueStoreStateZero(key32);
|
64
|
+
}
|
66
65
|
|
67
|
-
function _update(
|
68
|
-
Key32 key32,
|
69
|
-
bytes memory data,
|
70
|
-
StateId state
|
71
|
-
)
|
72
|
-
internal
|
73
|
-
{
|
74
|
-
require(state.gtz(), "ERROR:KVS-020:STATE_UNDEFINED");
|
75
66
|
Metadata storage metadata = _value[key32].metadata;
|
76
67
|
StateId stateOld = metadata.state;
|
77
|
-
|
68
|
+
if (stateOld.eqz()) {
|
69
|
+
revert ErrorKeyValueStoreNotExisting(key32);
|
70
|
+
}
|
78
71
|
|
79
72
|
// update data
|
80
73
|
_value[key32].data = data;
|
@@ -100,16 +93,12 @@ contract KeyValueStore is Lifecycle, IKeyValueStore {
|
|
100
93
|
|
101
94
|
function updateData(Key32 key32, bytes memory data)
|
102
95
|
internal
|
103
|
-
{
|
104
|
-
_updateData(key32, data);
|
105
|
-
}
|
106
|
-
|
107
|
-
function _updateData(Key32 key32, bytes memory data)
|
108
|
-
internal
|
109
96
|
{
|
110
97
|
Metadata storage metadata = _value[key32].metadata;
|
111
98
|
StateId state = metadata.state;
|
112
|
-
|
99
|
+
if (state.eqz()) {
|
100
|
+
revert ErrorKeyValueStoreNotExisting(key32);
|
101
|
+
}
|
113
102
|
|
114
103
|
// update data
|
115
104
|
_value[key32].data = data;
|
@@ -128,16 +117,15 @@ contract KeyValueStore is Lifecycle, IKeyValueStore {
|
|
128
117
|
function updateState(Key32 key32, StateId state)
|
129
118
|
internal
|
130
119
|
{
|
131
|
-
|
132
|
-
|
120
|
+
if (state.eqz()) {
|
121
|
+
revert ErrorKeyValueStoreStateZero(key32);
|
122
|
+
}
|
133
123
|
|
134
|
-
function _updateState(Key32 key32, StateId state)
|
135
|
-
internal
|
136
|
-
{
|
137
|
-
require(state.gtz(), "ERROR:KVS-040:STATE_UNDEFINED");
|
138
124
|
Metadata storage metadata = _value[key32].metadata;
|
139
125
|
StateId stateOld = metadata.state;
|
140
|
-
|
126
|
+
if (stateOld.eqz()) {
|
127
|
+
revert ErrorKeyValueStoreNotExisting(key32);
|
128
|
+
}
|
141
129
|
|
142
130
|
// ensure state transistion is valid
|
143
131
|
checkTransition(metadata.objectType, stateOld, state);
|
@@ -3,9 +3,9 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
5
|
|
6
|
-
import {NftId} from "../../
|
7
|
-
import {ObjectType, COMPONENT, BUNDLE, POLICY, RISK} from "../../
|
8
|
-
import {StateId, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED,
|
6
|
+
import {NftId} from "../../type/NftId.sol";
|
7
|
+
import {ObjectType, COMPONENT, BUNDLE, POLICY, RISK, CLAIM, PAYOUT} from "../../type/ObjectType.sol";
|
8
|
+
import {StateId, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID} from "../../type/StateId.sol";
|
9
9
|
import {ILifecycle} from "./ILifecycle.sol";
|
10
10
|
|
11
11
|
contract Lifecycle is
|
@@ -25,6 +25,7 @@ contract Lifecycle is
|
|
25
25
|
_setupBundleLifecycle();
|
26
26
|
_setupComponentLifecycle();
|
27
27
|
_setupPolicyLifecycle();
|
28
|
+
_setupClaimAndPayoutLifecycle();
|
28
29
|
_setupRiskLifecycle();
|
29
30
|
}
|
30
31
|
|
@@ -95,11 +96,21 @@ contract Lifecycle is
|
|
95
96
|
_initialState[POLICY()] = APPLIED();
|
96
97
|
_isValidTransition[POLICY()][APPLIED()][REVOKED()] = true;
|
97
98
|
_isValidTransition[POLICY()][APPLIED()][DECLINED()] = true;
|
98
|
-
_isValidTransition[POLICY()][APPLIED()][
|
99
|
-
_isValidTransition[POLICY()][
|
99
|
+
_isValidTransition[POLICY()][APPLIED()][COLLATERALIZED()] = true;
|
100
|
+
_isValidTransition[POLICY()][COLLATERALIZED()][ACTIVE()] = true;
|
100
101
|
_isValidTransition[POLICY()][ACTIVE()][CLOSED()] = true;
|
101
102
|
}
|
102
103
|
|
104
|
+
function _setupClaimAndPayoutLifecycle() internal {
|
105
|
+
_initialState[CLAIM()] = SUBMITTED();
|
106
|
+
_isValidTransition[CLAIM()][SUBMITTED()][CONFIRMED()] = true;
|
107
|
+
_isValidTransition[CLAIM()][SUBMITTED()][DECLINED()] = true;
|
108
|
+
_isValidTransition[CLAIM()][CONFIRMED()][CLOSED()] = true;
|
109
|
+
|
110
|
+
_initialState[PAYOUT()] = EXPECTED();
|
111
|
+
_isValidTransition[PAYOUT()][EXPECTED()][PAID()] = true;
|
112
|
+
}
|
113
|
+
|
103
114
|
function _setupRiskLifecycle() internal {
|
104
115
|
_initialState[RISK()] = ACTIVE();
|
105
116
|
_isValidTransition[RISK()][ACTIVE()][PAUSED()] = true;
|
@@ -3,12 +3,12 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Cloneable} from "./Cloneable.sol";
|
5
5
|
|
6
|
-
import {IInstance} from "
|
7
|
-
import {INSTANCE} from "
|
8
|
-
import {InstanceReader} from "
|
9
|
-
import {IRegistry} from "
|
10
|
-
import {LibNftIdSet} from "
|
11
|
-
import {NftId} from "
|
6
|
+
import {IInstance} from "../IInstance.sol";
|
7
|
+
import {INSTANCE} from "../../type/ObjectType.sol";
|
8
|
+
import {InstanceReader} from "../InstanceReader.sol";
|
9
|
+
import {IRegistry} from "../../registry/IRegistry.sol";
|
10
|
+
import {LibNftIdSet} from "../../type/NftIdSet.sol";
|
11
|
+
import {NftId} from "../../type/NftId.sol";
|
12
12
|
|
13
13
|
contract ObjectManager is
|
14
14
|
Cloneable
|
@@ -29,7 +29,7 @@ contract ObjectManager is
|
|
29
29
|
external
|
30
30
|
{
|
31
31
|
IInstance instance = IInstance(instanceAddress);
|
32
|
-
initialize(instance.authority(), instance.
|
32
|
+
initialize(instance.authority(), address(instance.getRegistry()));
|
33
33
|
|
34
34
|
_instance = instance;
|
35
35
|
|
@@ -3,8 +3,8 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
5
5
|
|
6
|
-
import {RoleId} from "../../
|
7
|
-
import {Timestamp} from "../../
|
6
|
+
import {RoleId} from "../../type/RoleId.sol";
|
7
|
+
import {Timestamp} from "../../type/Timestamp.sol";
|
8
8
|
|
9
9
|
interface IAccess {
|
10
10
|
|
@@ -1,11 +1,11 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount} from "../../
|
5
|
-
import {NftId} from "../../
|
6
|
-
import {Fee} from "../../
|
7
|
-
import {Seconds} from "../../
|
8
|
-
import {Timestamp} from "../../
|
4
|
+
import {Amount} from "../../type/Amount.sol";
|
5
|
+
import {NftId} from "../../type/NftId.sol";
|
6
|
+
import {Fee} from "../../type/Fee.sol";
|
7
|
+
import {Seconds} from "../../type/Seconds.sol";
|
8
|
+
import {Timestamp} from "../../type/Timestamp.sol";
|
9
9
|
|
10
10
|
interface IBundle {
|
11
11
|
|
@@ -3,12 +3,12 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
|
-
import {Amount} from "../../
|
7
|
-
import {Fee} from "../../
|
8
|
-
import {NftId} from "../../
|
9
|
-
import {RoleId} from "../../
|
6
|
+
import {Amount} from "../../type/Amount.sol";
|
7
|
+
import {Fee} from "../../type/Fee.sol";
|
8
|
+
import {NftId} from "../../type/NftId.sol";
|
9
|
+
import {RoleId} from "../../type/RoleId.sol";
|
10
10
|
import {TokenHandler} from "../../shared/TokenHandler.sol";
|
11
|
-
import {UFixed} from "../../
|
11
|
+
import {UFixed} from "../../type/UFixed.sol";
|
12
12
|
|
13
13
|
interface IComponents {
|
14
14
|
|
@@ -26,9 +26,9 @@ interface IComponents {
|
|
26
26
|
NftId productNftId; // the nft of the product this pool is linked to
|
27
27
|
RoleId bundleOwnerRole; // the required role for bundle owners
|
28
28
|
// TODO maxCapitalAmount -> maxBalanceAmount
|
29
|
-
|
30
|
-
|
31
|
-
|
29
|
+
Amount maxCapitalAmount; // max capital amount allowed for pool
|
30
|
+
Amount balanceAmount; // current pool balance (accounting view)
|
31
|
+
Amount feeAmount; // accumulated fee amount
|
32
32
|
bool isInterceptingBundleTransfers; // intercepts nft transfers for bundles
|
33
33
|
bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
|
34
34
|
bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
|
@@ -1,10 +1,11 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
import {
|
4
|
+
import {Amount} from "../../type/Amount.sol";
|
5
|
+
import {DistributorType} from "../../type/DistributorType.sol";
|
6
|
+
import {NftId} from "../../type/NftId.sol";
|
7
|
+
import {Timestamp} from "../../type/Timestamp.sol";
|
8
|
+
import {UFixed} from "../../type/UFixed.sol";
|
8
9
|
|
9
10
|
interface IDistribution {
|
10
11
|
|
@@ -24,8 +25,8 @@ interface IDistribution {
|
|
24
25
|
DistributorType distributorType;
|
25
26
|
bool active;
|
26
27
|
bytes data;
|
27
|
-
|
28
|
-
|
28
|
+
Amount commissionAmount;
|
29
|
+
uint32 numPoliciesSold;
|
29
30
|
}
|
30
31
|
|
31
32
|
struct ReferralInfo {
|
@@ -1,12 +1,13 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import {
|
4
|
+
import {Amount} from "../../type/Amount.sol";
|
5
|
+
import {NftId} from "../../type/NftId.sol";
|
6
|
+
import {ClaimId} from "../../type/ClaimId.sol";
|
7
|
+
import {ReferralId} from "../../type/Referral.sol";
|
8
|
+
import {RiskId} from "../../type/RiskId.sol";
|
9
|
+
import {Seconds} from "../../type/Seconds.sol";
|
10
|
+
import {Timestamp} from "../../type/Timestamp.sol";
|
10
11
|
|
11
12
|
interface IPolicy {
|
12
13
|
|
@@ -40,15 +41,16 @@ interface IPolicy {
|
|
40
41
|
NftId bundleNftId;
|
41
42
|
ReferralId referralId;
|
42
43
|
RiskId riskId;
|
43
|
-
|
44
|
-
|
45
|
-
|
44
|
+
Amount sumInsuredAmount;
|
45
|
+
Amount premiumAmount;
|
46
|
+
Amount premiumPaidAmount; // when lower than premium amount: max payout decreased accordingly
|
46
47
|
Seconds lifetime;
|
47
48
|
bytes applicationData;
|
48
49
|
bytes policyData;
|
49
50
|
uint16 claimsCount;
|
50
51
|
uint16 openClaimsCount;
|
51
|
-
|
52
|
+
Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
|
53
|
+
Amount payoutAmount; // sum of payouts (max = sum confirmed claim amountst)
|
52
54
|
Timestamp activatedAt; // time of underwriting
|
53
55
|
Timestamp expiredAt; // no new claims (activatedAt + lifetime)
|
54
56
|
Timestamp closedAt; // no locked capital (or declinedAt)
|
@@ -56,16 +58,19 @@ interface IPolicy {
|
|
56
58
|
|
57
59
|
// claimId neeeds to be encoded policyNftId:claimId combination
|
58
60
|
struct ClaimInfo {
|
59
|
-
|
60
|
-
|
61
|
+
Amount claimAmount;
|
62
|
+
Amount paidAmount;
|
63
|
+
uint8 payoutsCount;
|
64
|
+
uint8 openPayoutsCount;
|
61
65
|
bytes data;
|
62
|
-
|
66
|
+
// TODO consider to add processData that may include information supporting confirm or decline
|
67
|
+
Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
|
63
68
|
}
|
64
69
|
|
65
70
|
// claimId neeeds to be encoded policyNftId:claimId combination
|
66
71
|
struct PayoutInfo {
|
67
72
|
ClaimId claimId;
|
68
|
-
|
73
|
+
Amount amount;
|
69
74
|
bytes data;
|
70
75
|
Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
|
71
76
|
}
|
@@ -3,11 +3,11 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
|
-
import {Fee} from "../../
|
7
|
-
import {NftId} from "../../
|
8
|
-
import {RoleId} from "../../
|
6
|
+
import {Fee} from "../../type/Fee.sol";
|
7
|
+
import {NftId} from "../../type/NftId.sol";
|
8
|
+
import {RoleId} from "../../type/RoleId.sol";
|
9
9
|
import {TokenHandler} from "../../shared/TokenHandler.sol";
|
10
|
-
import {UFixed} from "../../
|
10
|
+
import {UFixed} from "../../type/UFixed.sol";
|
11
11
|
|
12
12
|
interface ISetup {
|
13
13
|
|