@etherisc/gif-next 0.0.2-e94f4c7-084 → 0.0.2-e964d24-516
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 +45 -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/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +252 -2210
- 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 +352 -2691
- 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 +233 -67
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -226
- 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 +2788 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +2 -2
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- 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 +6 -6
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +4 -4
- 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 +57 -31
- 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 +153 -36
- 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/product/IApplicationService.sol/IApplicationService.json +493 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +230 -89
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +36 -354
- 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} +37 -154
- 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/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
- 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/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
- 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 +5 -5
- 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 +15 -14
- package/contracts/{instance/service → distribution}/DistributionService.sol +80 -163
- 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 +4 -4
- package/contracts/instance/IInstance.sol +37 -62
- package/contracts/instance/IInstanceService.sol +18 -13
- package/contracts/instance/Instance.sol +94 -175
- package/contracts/instance/InstanceAccessManager.sol +38 -24
- package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
- package/contracts/instance/InstanceReader.sol +68 -17
- package/contracts/instance/InstanceService.sol +96 -266
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +211 -0
- package/contracts/instance/ObjectManager.sol +4 -4
- package/contracts/instance/base/IKeyValueStore.sol +5 -5
- package/contracts/instance/base/ILifecycle.sol +3 -3
- package/contracts/instance/base/KeyValueStore.sol +6 -37
- package/contracts/instance/base/Lifecycle.sol +8 -5
- 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 +12 -12
- 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 +84 -145
- package/contracts/{instance/service → pool}/BundleServiceManager.sol +5 -5
- package/contracts/{instance/service → pool}/IBundleService.sol +41 -25
- package/contracts/{components → pool}/IPoolComponent.sol +13 -12
- package/contracts/{instance/service → pool}/IPoolService.sol +26 -14
- package/contracts/{components → pool}/Pool.sol +18 -18
- package/contracts/{instance/service → pool}/PoolService.sol +125 -58
- 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 +12 -28
- package/contracts/product/IClaimService.sol +90 -0
- package/contracts/product/IPolicyService.sol +80 -0
- 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/product/PolicyService.sol +376 -0
- 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 +37 -33
- 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 +39 -0
- package/contracts/{types → type}/Fee.sol +7 -6
- package/contracts/{types → type}/NftIdSet.sol +1 -1
- package/contracts/{types → type}/ObjectType.sol +5 -1
- 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/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 -1060
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1289
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
- 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 -1543
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1449
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -709
- 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 -209
- 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/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/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 -355
- package/contracts/instance/service/ClaimService.sol +0 -239
- package/contracts/instance/service/IClaimService.sol +0 -92
- package/contracts/instance/service/IPolicyService.sol +0 -139
- package/contracts/instance/service/PolicyService.sol +0 -571
- 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}/ClaimId.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}/PayoutId.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}/StateId.sol +0 -0
- /package/contracts/{types → type}/Timestamp.sol +0 -0
- /package/contracts/{types → type}/UFixed.sol +0 -0
- /package/contracts/{types → type}/Version.sol +0 -0
@@ -1,38 +1,41 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
|
-
import {IRegistry} from "
|
5
|
-
import {IInstance} from "
|
6
|
-
import {InstanceAccessManager} from "../InstanceAccessManager.sol";
|
7
|
-
import {InstanceReader} from "
|
8
|
-
import {ISetup} from "
|
9
|
-
import {IPolicy} from "../module/IPolicy.sol";
|
10
|
-
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
import {
|
17
|
-
import {
|
18
|
-
|
19
|
-
|
20
|
-
import {
|
21
|
-
|
22
|
-
|
23
|
-
import {
|
24
|
-
import {
|
25
|
-
import {
|
26
|
-
import {
|
27
|
-
import {
|
4
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
5
|
+
import {IInstance} from "../instance/IInstance.sol";
|
6
|
+
import {InstanceAccessManager} from "../instance/InstanceAccessManager.sol";
|
7
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
8
|
+
import {ISetup} from "../instance/module/ISetup.sol";
|
9
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
10
|
+
|
11
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
12
|
+
import {NftId, NftIdLib, zeroNftId} from "../type/NftId.sol";
|
13
|
+
import {Fee, FeeLib} from "../type/Fee.sol";
|
14
|
+
import {PRODUCT_SERVICE_ROLE, DISTRIBUTION_OWNER_ROLE} from "../type/RoleId.sol";
|
15
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
16
|
+
import {ObjectType, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, PRICE} from "../type/ObjectType.sol";
|
17
|
+
import {Version, VersionLib} from "../type/Version.sol";
|
18
|
+
import {RoleId} from "../type/RoleId.sol";
|
19
|
+
|
20
|
+
import {IVersionable} from "../shared/IVersionable.sol";
|
21
|
+
import {Versionable} from "../shared/Versionable.sol";
|
22
|
+
|
23
|
+
import {IService} from "../shared/IService.sol";
|
24
|
+
import {Service} from "../shared/Service.sol";
|
25
|
+
import {ComponentService} from "../shared/ComponentService.sol";
|
26
|
+
import {InstanceService} from "../instance/InstanceService.sol";
|
27
|
+
import {IComponent} from "../shared/IComponent.sol";
|
28
|
+
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
28
29
|
import {IDistributionService} from "./IDistributionService.sol";
|
30
|
+
import {IPricingService} from "../product/IPricingService.sol";
|
29
31
|
|
30
|
-
import {UFixed, UFixedLib} from "
|
31
|
-
import {DistributorType, DistributorTypeLib} from "
|
32
|
-
import {ReferralId, ReferralStatus, ReferralLib} from "
|
33
|
-
import {Timestamp, TimestampLib, zeroTimestamp} from "
|
34
|
-
import {Key32} from "
|
35
|
-
import {IDistribution} from "../module/IDistribution.sol";
|
32
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
33
|
+
import {DistributorType, DistributorTypeLib} from "../type/DistributorType.sol";
|
34
|
+
import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
|
35
|
+
import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
36
|
+
import {Key32} from "../type/Key32.sol";
|
37
|
+
import {IDistribution} from "../instance/module/IDistribution.sol";
|
38
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
36
39
|
|
37
40
|
|
38
41
|
contract DistributionService is
|
@@ -87,7 +90,7 @@ contract DistributionService is
|
|
87
90
|
distribution.linkToRegisteredNftId();
|
88
91
|
distributionNftId = distributionInfo.nftId;
|
89
92
|
|
90
|
-
instance.createDistributionSetup(distributionNftId, distribution.getSetupInfo());
|
93
|
+
instance.getInstanceStore().createDistributionSetup(distributionNftId, distribution.getSetupInfo());
|
91
94
|
// TODO move to distribution?
|
92
95
|
bytes4[][] memory selectors = new bytes4[][](2);
|
93
96
|
selectors[0] = new bytes4[](1);
|
@@ -119,14 +122,14 @@ contract DistributionService is
|
|
119
122
|
revert ErrorIDistributionServiceMinFeeTooHigh(minDistributionOwnerFee.fractionalFee.toInt(), distributionFee.fractionalFee.toInt());
|
120
123
|
}
|
121
124
|
|
122
|
-
(NftId distributionNftId
|
125
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
|
123
126
|
InstanceReader instanceReader = instance.getInstanceReader();
|
124
127
|
|
125
128
|
ISetup.DistributionSetupInfo memory distSetupInfo = instanceReader.getDistributionSetupInfo(distributionNftId);
|
126
129
|
distSetupInfo.minDistributionOwnerFee = minDistributionOwnerFee;
|
127
130
|
distSetupInfo.distributionFee = distributionFee;
|
128
131
|
|
129
|
-
instance.updateDistributionSetup(distributionNftId, distSetupInfo, KEEP_STATE());
|
132
|
+
instance.getInstanceStore().updateDistributionSetup(distributionNftId, distSetupInfo, KEEP_STATE());
|
130
133
|
}
|
131
134
|
|
132
135
|
function createDistributorType(
|
@@ -143,7 +146,7 @@ contract DistributionService is
|
|
143
146
|
external
|
144
147
|
returns (DistributorType distributorType)
|
145
148
|
{
|
146
|
-
(NftId distributionNftId
|
149
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
|
147
150
|
|
148
151
|
{
|
149
152
|
ISetup.DistributionSetupInfo memory setupInfo = instance.getInstanceReader().getDistributionSetupInfo(distributionNftId);
|
@@ -153,7 +156,7 @@ contract DistributionService is
|
|
153
156
|
revert ErrorIDistributionServiceMaxDiscountTooHigh(maxDiscountPercentage.toInt(), maxDiscountPercentageLimit.toInt());
|
154
157
|
}
|
155
158
|
}
|
156
|
-
|
159
|
+
|
157
160
|
distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
|
158
161
|
IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
|
159
162
|
name,
|
@@ -166,16 +169,20 @@ contract DistributionService is
|
|
166
169
|
allowRenewals,
|
167
170
|
data);
|
168
171
|
|
169
|
-
instance.createDistributorType(distributorType, info);
|
172
|
+
instance.getInstanceStore().createDistributorType(distributorType, info);
|
170
173
|
}
|
171
174
|
|
175
|
+
|
172
176
|
function createDistributor(
|
173
177
|
address distributor,
|
174
178
|
DistributorType distributorType,
|
175
179
|
bytes memory data
|
176
|
-
)
|
180
|
+
)
|
181
|
+
external
|
182
|
+
virtual
|
183
|
+
returns (NftId distributorNftId)
|
177
184
|
{
|
178
|
-
(NftId distributionNftId
|
185
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
|
179
186
|
|
180
187
|
distributorNftId = getRegistryService().registerDistributor(
|
181
188
|
IRegistry.ObjectInfo(
|
@@ -192,25 +199,27 @@ contract DistributionService is
|
|
192
199
|
distributorType,
|
193
200
|
true, // active
|
194
201
|
data,
|
195
|
-
|
202
|
+
AmountLib.zero(),
|
196
203
|
0);
|
197
204
|
|
198
|
-
instance.createDistributor(distributorNftId, info);
|
205
|
+
instance.getInstanceStore().createDistributor(distributorNftId, info);
|
199
206
|
}
|
200
207
|
|
201
|
-
function updateDistributorType(
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
)
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
208
|
+
// function updateDistributorType(
|
209
|
+
// NftId distributorNftId,
|
210
|
+
// DistributorType distributorType,
|
211
|
+
// bytes memory data
|
212
|
+
// )
|
213
|
+
// external
|
214
|
+
// virtual
|
215
|
+
// {
|
216
|
+
// (, IInstance instance) = _getAndVerifyCallingDistribution();
|
217
|
+
// InstanceReader instanceReader = instance.getInstanceReader();
|
218
|
+
// IDistribution.DistributorInfo memory distributorInfo = instanceReader.getDistributorInfo(distributorNftId);
|
219
|
+
// distributorInfo.distributorType = distributorType;
|
220
|
+
// distributorInfo.data = data;
|
221
|
+
// instance.updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
|
222
|
+
// }
|
214
223
|
|
215
224
|
|
216
225
|
function createReferral(
|
@@ -225,7 +234,7 @@ contract DistributionService is
|
|
225
234
|
virtual
|
226
235
|
returns (ReferralId referralId)
|
227
236
|
{
|
228
|
-
(NftId distributionNftId
|
237
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
|
229
238
|
|
230
239
|
if (bytes(code).length == 0) {
|
231
240
|
revert ErrorIDistributionServiceInvalidReferral(code);
|
@@ -235,8 +244,7 @@ contract DistributionService is
|
|
235
244
|
}
|
236
245
|
|
237
246
|
InstanceReader instanceReader = instance.getInstanceReader();
|
238
|
-
|
239
|
-
DistributorType distributorType = distributorInfo.distributorType;
|
247
|
+
DistributorType distributorType = instanceReader.getDistributorInfo(distributorNftId).distributorType;
|
240
248
|
IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
|
241
249
|
|
242
250
|
if (distributorTypeData.maxReferralCount < maxReferrals) {
|
@@ -263,15 +271,15 @@ contract DistributionService is
|
|
263
271
|
data
|
264
272
|
);
|
265
273
|
|
266
|
-
instance.createReferral(referralId, info);
|
274
|
+
instance.getInstanceStore().createReferral(referralId, info);
|
267
275
|
return referralId;
|
268
276
|
}
|
269
277
|
|
270
278
|
function processSale(
|
271
|
-
NftId distributionNftId,
|
279
|
+
NftId distributionNftId, // assume always of distribution type
|
272
280
|
ReferralId referralId,
|
273
281
|
IPolicy.Premium memory premium,
|
274
|
-
|
282
|
+
Amount transferredDistributionFeeAmount
|
275
283
|
)
|
276
284
|
external
|
277
285
|
virtual
|
@@ -285,104 +293,36 @@ contract DistributionService is
|
|
285
293
|
|
286
294
|
IInstance instance = _getInstanceForDistribution(distributionNftId);
|
287
295
|
InstanceReader reader = instance.getInstanceReader();
|
296
|
+
InstanceStore store = instance.getInstanceStore();
|
288
297
|
IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
|
289
298
|
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
290
299
|
ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
|
291
300
|
|
292
|
-
|
293
|
-
|
301
|
+
Amount distributionOwnerFee = AmountLib.toAmount(premium.distributionOwnerFeeFixAmount + premium.distributionOwnerFeeVarAmount);
|
302
|
+
Amount commissionAmount = AmountLib.toAmount(premium.commissionAmount);
|
294
303
|
|
295
|
-
if (transferredDistributionFeeAmount
|
296
|
-
revert
|
304
|
+
if (!(transferredDistributionFeeAmount == distributionOwnerFee + commissionAmount)) {
|
305
|
+
revert ErrorDistributionServiceInvalidFeeTransferred(transferredDistributionFeeAmount, distributionOwnerFee + commissionAmount);
|
297
306
|
}
|
298
307
|
|
299
308
|
|
300
|
-
if (distributionOwnerFee
|
301
|
-
setupInfo.sumDistributionOwnerFees += distributionOwnerFee;
|
302
|
-
|
309
|
+
if (distributionOwnerFee.gtz()) {
|
310
|
+
setupInfo.sumDistributionOwnerFees += distributionOwnerFee.toInt();
|
311
|
+
store.updateDistributionSetup(distributionNftId, setupInfo, KEEP_STATE());
|
303
312
|
}
|
304
313
|
|
305
314
|
if (isReferral) {
|
306
315
|
referralInfo.usedReferrals += 1;
|
307
|
-
|
316
|
+
store.updateReferral(referralId, referralInfo, KEEP_STATE());
|
308
317
|
|
309
|
-
if (commissionAmount
|
310
|
-
distributorInfo.
|
318
|
+
if (commissionAmount.gtz()) {
|
319
|
+
distributorInfo.commissionAmount = distributorInfo.commissionAmount + commissionAmount;
|
311
320
|
distributorInfo.numPoliciesSold += 1;
|
312
|
-
|
321
|
+
store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
|
313
322
|
}
|
314
323
|
}
|
315
324
|
}
|
316
325
|
|
317
|
-
function calculateFeeAmount(
|
318
|
-
NftId distributionNftId,
|
319
|
-
ReferralId referralId,
|
320
|
-
IPolicy.Premium memory premium
|
321
|
-
)
|
322
|
-
external
|
323
|
-
virtual
|
324
|
-
view
|
325
|
-
returns (IPolicy.Premium memory finalPremium)
|
326
|
-
{
|
327
|
-
IInstance instance = _getInstanceForDistribution(distributionNftId);
|
328
|
-
InstanceReader reader = instance.getInstanceReader();
|
329
|
-
|
330
|
-
// first calculate all fixed and variable fees for the distribution - this will defined the fullPremium
|
331
|
-
ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
|
332
|
-
Fee memory distributionFee = setupInfo.distributionFee;
|
333
|
-
Fee memory minDistributionOwnerFee = setupInfo.minDistributionOwnerFee;
|
334
|
-
uint256 distributionFeeVarAmount = (UFixedLib.toUFixed(premium.netPremiumAmount) * distributionFee.fractionalFee).toInt();
|
335
|
-
premium.distributionFeeVarAmount = distributionFeeVarAmount;
|
336
|
-
premium.fullPremiumAmount += distributionFeeVarAmount;
|
337
|
-
|
338
|
-
// if the referral is not valid, then the distribution owner gets everything
|
339
|
-
if (! referralIsValid(distributionNftId, referralId)) {
|
340
|
-
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
341
|
-
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
342
|
-
premium.premiumAmount = premium.fullPremiumAmount;
|
343
|
-
return premium;
|
344
|
-
}
|
345
|
-
|
346
|
-
// if the referral is valid, the the commission and discount are calculated based in the full premium
|
347
|
-
// the remaing amount goes to the distribution owner
|
348
|
-
{
|
349
|
-
IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
|
350
|
-
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
351
|
-
IDistribution.DistributorTypeInfo memory distributorTypeInfo = reader.getDistributorTypeInfo(distributorInfo.distributorType);
|
352
|
-
|
353
|
-
uint256 commissionAmount = UFixedLib.toUFixed(premium.netPremiumAmount).mul(distributorTypeInfo.commissionPercentage).toInt();
|
354
|
-
premium.commissionAmount = commissionAmount;
|
355
|
-
premium.discountAmount = UFixedLib.toUFixed(premium.fullPremiumAmount).mul(referralInfo.discountPercentage).toInt();
|
356
|
-
premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
|
357
|
-
premium.distributionOwnerFeeVarAmount = distributionFeeVarAmount - commissionAmount - premium.discountAmount;
|
358
|
-
premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
|
359
|
-
}
|
360
|
-
|
361
|
-
// sanity check to validate the fee calculation
|
362
|
-
if (premium.distributionOwnerFeeFixAmount < minDistributionOwnerFee.fixedFee) {
|
363
|
-
revert ErrorIDistributionServiceFeeCalculationMismatch(
|
364
|
-
premium.distributionFeeFixAmount,
|
365
|
-
premium.distributionFeeVarAmount,
|
366
|
-
premium.distributionOwnerFeeFixAmount,
|
367
|
-
premium.distributionOwnerFeeVarAmount,
|
368
|
-
premium.commissionAmount,
|
369
|
-
premium.discountAmount
|
370
|
-
);
|
371
|
-
}
|
372
|
-
if ((premium.distributionFeeVarAmount) != (premium.discountAmount + premium.distributionOwnerFeeVarAmount + premium.commissionAmount)) {
|
373
|
-
revert ErrorIDistributionServiceFeeCalculationMismatch(
|
374
|
-
premium.distributionFeeFixAmount,
|
375
|
-
premium.distributionFeeVarAmount,
|
376
|
-
premium.distributionOwnerFeeFixAmount,
|
377
|
-
premium.distributionOwnerFeeVarAmount,
|
378
|
-
premium.commissionAmount,
|
379
|
-
premium.discountAmount
|
380
|
-
);
|
381
|
-
}
|
382
|
-
|
383
|
-
return premium;
|
384
|
-
}
|
385
|
-
|
386
326
|
// TODO: zero should return false
|
387
327
|
function referralIsValid(NftId distributionNftId, ReferralId referralId) public view returns (bool isValid) {
|
388
328
|
IInstance instance = _getInstanceForDistribution(distributionNftId);
|
@@ -396,29 +336,6 @@ contract DistributionService is
|
|
396
336
|
isValid = isValid && info.usedReferrals < info.maxReferrals;
|
397
337
|
}
|
398
338
|
|
399
|
-
function _getAndVerifyCallingDistribution()
|
400
|
-
internal
|
401
|
-
view
|
402
|
-
returns(
|
403
|
-
NftId distributionNftId,
|
404
|
-
IInstance instance
|
405
|
-
)
|
406
|
-
{
|
407
|
-
distributionNftId = getRegistry().getNftId(msg.sender);
|
408
|
-
if (distributionNftId.eqz()) {
|
409
|
-
revert ErrorDistributionServiceCallerNotRegistered(msg.sender);
|
410
|
-
}
|
411
|
-
|
412
|
-
IRegistry.ObjectInfo memory info = getRegistry().getObjectInfo(distributionNftId);
|
413
|
-
if(info.objectType != DISTRIBUTION()) {
|
414
|
-
revert ErrorIDistributionServiceCallerNotDistributor(msg.sender);
|
415
|
-
}
|
416
|
-
|
417
|
-
address instanceAddress = getRegistry().getObjectInfo(info.parentNftId).objectAddress;
|
418
|
-
instance = IInstance(instanceAddress);
|
419
|
-
}
|
420
|
-
|
421
|
-
|
422
339
|
function _getInstanceForDistribution(NftId distributionNftId)
|
423
340
|
internal
|
424
341
|
view
|
@@ -428,4 +345,4 @@ contract DistributionService is
|
|
428
345
|
address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
|
429
346
|
return IInstance(instanceAddress);
|
430
347
|
}
|
431
|
-
}
|
348
|
+
}
|
@@ -1,12 +1,12 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IVersionable} from "
|
5
|
-
import {ProxyManager} from "
|
4
|
+
import {IVersionable} from "../shared/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../shared/ProxyManager.sol";
|
6
6
|
import {DistributionService} from "./DistributionService.sol";
|
7
|
-
import {Registry} from "
|
8
|
-
import {RegistryService} from "
|
9
|
-
import {REGISTRY} from "
|
7
|
+
import {Registry} from "../registry/Registry.sol";
|
8
|
+
import {RegistryService} from "../registry/RegistryService.sol";
|
9
|
+
import {REGISTRY} from "../type/ObjectType.sol";
|
10
10
|
|
11
11
|
contract DistributionServiceManager is ProxyManager {
|
12
12
|
|
@@ -1,14 +1,14 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
|
-
import {Fee} from "../
|
5
|
-
import {IComponent} from "
|
4
|
+
import {Fee} from "../type/Fee.sol";
|
5
|
+
import {IComponent} from "../shared/IComponent.sol";
|
6
6
|
import {ISetup} from "../instance/module/ISetup.sol";
|
7
|
-
import {ReferralId, ReferralStatus} from "../
|
8
|
-
import {NftId} from "../
|
9
|
-
import {DistributorType} from "../
|
10
|
-
import {UFixed} from "../
|
11
|
-
import {Timestamp} from "../
|
7
|
+
import {ReferralId, ReferralStatus} from "../type/Referral.sol";
|
8
|
+
import {NftId} from "../type/NftId.sol";
|
9
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
10
|
+
import {UFixed} from "../type/UFixed.sol";
|
11
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
12
12
|
|
13
13
|
interface IDistributionComponent is IComponent {
|
14
14
|
|
@@ -1,14 +1,15 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import {
|
10
|
-
import {
|
11
|
-
import {
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {NftId} from "../type/NftId.sol";
|
6
|
+
import {Fee} from "../type/Fee.sol";
|
7
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
8
|
+
import {IService} from "../shared/IService.sol";
|
9
|
+
import {UFixed} from "../type/UFixed.sol";
|
10
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
11
|
+
import {ReferralId} from "../type/Referral.sol";
|
12
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
12
13
|
|
13
14
|
|
14
15
|
interface IDistributionService is IService {
|
@@ -25,16 +26,8 @@ interface IDistributionService is IService {
|
|
25
26
|
error ErrorIDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
|
26
27
|
error ErrorIDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
|
27
28
|
error ErrorIDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
|
28
|
-
error ErrorIDistributionServiceFeeCalculationMismatch(
|
29
|
-
uint256 distributionFeeFixAmount,
|
30
|
-
uint256 distributionFeeVarAmount,
|
31
|
-
uint256 distributionOwnerFeeFixAmount,
|
32
|
-
uint256 distributionOwnerFeeVarAmount,
|
33
|
-
uint256 commissionAmount,
|
34
|
-
uint256 discountAmount
|
35
|
-
);
|
36
29
|
error ErrorIDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
|
37
|
-
error
|
30
|
+
error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
|
38
31
|
|
39
32
|
function setFees(
|
40
33
|
Fee memory minDistributionOwnerFee,
|
@@ -61,11 +54,12 @@ interface IDistributionService is IService {
|
|
61
54
|
bytes memory data
|
62
55
|
) external returns (NftId distributorNftId);
|
63
56
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
57
|
+
// TODO re-enable and reorganize (service contract too large)
|
58
|
+
// function updateDistributorType(
|
59
|
+
// NftId distributorNftId,
|
60
|
+
// DistributorType distributorType,
|
61
|
+
// bytes memory data
|
62
|
+
// ) external;
|
69
63
|
|
70
64
|
function createReferral(
|
71
65
|
NftId distributorNftId,
|
@@ -83,17 +77,11 @@ interface IDistributionService is IService {
|
|
83
77
|
NftId distributionNftId,
|
84
78
|
ReferralId referralId,
|
85
79
|
IPolicy.Premium memory premium,
|
86
|
-
|
80
|
+
Amount transferredDistributionFeeAmount
|
87
81
|
) external;
|
88
82
|
|
89
|
-
function calculateFeeAmount(
|
90
|
-
NftId distributionNftId,
|
91
|
-
ReferralId referralId,
|
92
|
-
IPolicy.Premium memory premium
|
93
|
-
) external view returns (IPolicy.Premium memory finalPremium);
|
94
|
-
|
95
83
|
function referralIsValid(
|
96
84
|
NftId distributorNftId,
|
97
85
|
ReferralId referralId
|
98
86
|
) external view returns (bool isValid);
|
99
|
-
}
|
87
|
+
}
|
@@ -2,13 +2,13 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IInstance} from "./IInstance.sol";
|
5
|
-
import {INSTANCE} from "../
|
5
|
+
import {INSTANCE} from "../type/ObjectType.sol";
|
6
6
|
import {InstanceReader} from "./InstanceReader.sol";
|
7
7
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
8
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
9
|
-
import {LibNftIdSet} from "../
|
10
|
-
import {NftId} from "../
|
11
|
-
import {TimestampLib} from "../
|
9
|
+
import {LibNftIdSet} from "../type/NftIdSet.sol";
|
10
|
+
import {NftId} from "../type/NftId.sol";
|
11
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
12
12
|
|
13
13
|
import {ObjectManager} from "./ObjectManager.sol";
|
14
14
|
|
@@ -3,15 +3,16 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
5
|
|
6
|
-
import {ClaimId} from "../
|
7
|
-
import {DistributorType} from "../
|
8
|
-
import {PayoutId} from "../
|
9
|
-
import {NftId} from "../
|
10
|
-
import {StateId} from "../
|
11
|
-
import {ReferralId} from "../
|
12
|
-
import {RiskId} from "../
|
13
|
-
import {VersionPart} from "../
|
14
|
-
import {Key32} from "../
|
6
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
7
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
8
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
9
|
+
import {NftId} from "../type/NftId.sol";
|
10
|
+
import {StateId} from "../type/StateId.sol";
|
11
|
+
import {ReferralId} from "../type/Referral.sol";
|
12
|
+
import {RiskId} from "../type/RiskId.sol";
|
13
|
+
import {VersionPart} from "../type/Version.sol";
|
14
|
+
import {Key32} from "../type/Key32.sol";
|
15
|
+
import {RoleId} from "../type/RoleId.sol";
|
15
16
|
|
16
17
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
17
18
|
|
@@ -20,25 +21,28 @@ import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
|
20
21
|
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
21
22
|
import {BundleManager} from "./BundleManager.sol";
|
22
23
|
import {InstanceReader} from "./InstanceReader.sol";
|
24
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
23
25
|
|
24
|
-
import {IBundle} from "./module/IBundle.sol";
|
25
|
-
import {IBundleService} from "./service/IBundleService.sol";
|
26
|
-
import {IComponents} from "./module/IComponents.sol";
|
27
|
-
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
28
26
|
import {IKeyValueStore} from "./base/IKeyValueStore.sol";
|
29
|
-
|
30
|
-
import {
|
31
|
-
|
32
|
-
import {
|
27
|
+
|
28
|
+
import {IAccess} from "./module/IAccess.sol";
|
29
|
+
|
30
|
+
import {IBundleService} from "../pool/IBundleService.sol";
|
31
|
+
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
32
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
33
|
+
import {IPoolService} from "../pool/IPoolService.sol";
|
34
|
+
import {IProductService} from "../product/IProductService.sol";
|
35
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
36
|
+
import {IBundleService} from "../pool/IBundleService.sol";
|
33
37
|
|
34
38
|
|
35
39
|
|
36
40
|
interface IInstance is
|
37
41
|
IRegisterable,
|
38
42
|
ITransferInterceptor,
|
39
|
-
IAccessManaged
|
40
|
-
IKeyValueStore
|
43
|
+
IAccessManaged
|
41
44
|
{
|
45
|
+
error ErrorInstanceInstanceAccessManagerZero();
|
42
46
|
error ErrorInstanceInstanceAccessManagerAlreadySet(address instanceAccessManager);
|
43
47
|
error ErrorInstanceInstanceAccessManagerAuthorityMismatch(address instanceAuthority);
|
44
48
|
|
@@ -48,55 +52,26 @@ interface IInstance is
|
|
48
52
|
|
49
53
|
error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
|
50
54
|
|
51
|
-
|
52
|
-
|
53
|
-
function updateDistributionSetupState(NftId distributionNftId, StateId newState) external;
|
54
|
-
|
55
|
-
function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external;
|
56
|
-
function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external;
|
57
|
-
function updatePoolSetupState(NftId poolNftId, StateId newState) external;
|
58
|
-
|
59
|
-
function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external;
|
60
|
-
function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external;
|
61
|
-
function updateBundleState(NftId bundleNftId, StateId newState) external;
|
62
|
-
|
63
|
-
function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external;
|
64
|
-
function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external;
|
65
|
-
function updateProductSetupState(NftId productNftId, StateId newState) external;
|
66
|
-
|
67
|
-
function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external;
|
68
|
-
function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external;
|
69
|
-
function updateDistributorTypeState(DistributorType distributorType, StateId newState) external;
|
70
|
-
|
71
|
-
function createDistributor(NftId nftId, IDistribution.DistributorInfo memory info) external;
|
72
|
-
function updateDistributor(NftId nftId, IDistribution.DistributorInfo memory info, StateId newState) external;
|
73
|
-
function updateDistributorState(NftId nftId, StateId newState) external;
|
74
|
-
|
75
|
-
function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external;
|
76
|
-
function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external;
|
77
|
-
function updateReferralState(ReferralId referralId, StateId newState) external;
|
78
|
-
|
79
|
-
function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external;
|
80
|
-
function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external;
|
81
|
-
function updateRiskState(RiskId riskId, StateId newState) external;
|
82
|
-
|
83
|
-
function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external;
|
84
|
-
function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external;
|
85
|
-
function updateApplicationState(NftId applicationNftId, StateId newState) external;
|
55
|
+
error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
|
56
|
+
error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
|
86
57
|
|
87
|
-
function
|
88
|
-
function
|
58
|
+
function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
|
59
|
+
function grantRole(RoleId roleId, address account) external;
|
60
|
+
function revokeRole(RoleId roleId, address account) external;
|
89
61
|
|
90
|
-
function
|
91
|
-
function
|
92
|
-
function
|
62
|
+
function createTarget(address target, string memory name) external;
|
63
|
+
function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
|
64
|
+
function setTargetLocked(address target, bool locked) external;
|
93
65
|
|
94
|
-
function
|
95
|
-
function
|
96
|
-
function
|
66
|
+
function getDistributionService() external view returns (IDistributionService);
|
67
|
+
function getProductService() external view returns (IProductService);
|
68
|
+
function getPoolService() external view returns (IPoolService);
|
69
|
+
function getPolicyService() external view returns (IPolicyService);
|
70
|
+
function getBundleService() external view returns (IBundleService);
|
97
71
|
|
98
72
|
function getMajorVersion() external pure returns (VersionPart majorVersion);
|
99
73
|
function getInstanceReader() external view returns (InstanceReader);
|
100
74
|
function getBundleManager() external view returns (BundleManager);
|
101
75
|
function getInstanceAccessManager() external view returns (InstanceAccessManager);
|
76
|
+
function getInstanceStore() external view returns (InstanceStore);
|
102
77
|
}
|