@etherisc/gif-next 0.0.2-e9a637d-547 → 0.0.2-ead1eb0-841
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -12
- 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 +93 -13
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +5 -43
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +109 -29
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +6 -6
- 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 +349 -64
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +49 -278
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +39 -128
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +427 -257
- 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 +272 -39
- 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 +1386 -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 +753 -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 +85 -173
- 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 +30 -13
- package/contracts/instance/IInstanceService.sol +6 -17
- package/contracts/instance/Instance.sol +76 -46
- package/contracts/instance/InstanceAccessManager.sol +8 -5
- package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
- package/contracts/instance/InstanceReader.sol +91 -16
- package/contracts/instance/InstanceService.sol +75 -297
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +57 -65
- 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 +32 -43
- package/contracts/instance/base/Lifecycle.sol +17 -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 +22 -16
- 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 +95 -144
- 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 +149 -49
- 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 +442 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +2 -2
- package/contracts/{instance/service → product}/IApplicationService.sol +14 -34
- package/contracts/product/IClaimService.sol +93 -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 +148 -134
- 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 +160 -74
- package/contracts/{instance/service → product}/ProductService.sol +44 -43
- 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 +2 -2
- package/contracts/registry/RegistryService.sol +23 -20
- package/contracts/registry/RegistryServiceManager.sol +0 -2
- package/contracts/registry/ReleaseManager.sol +12 -8
- 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}/RoleId.sol +44 -9
- 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 -351
- 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}/Seconds.sol +0 -0
- /package/contracts/{types → type}/UFixed.sol +0 -0
- /package/contracts/{types → type}/Version.sol +0 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"_format": "hh-sol-artifact-1",
|
3
3
|
"contractName": "VersionLib",
|
4
|
-
"sourceName": "contracts/
|
4
|
+
"sourceName": "contracts/type/Version.sol",
|
5
5
|
"abi": [
|
6
6
|
{
|
7
7
|
"inputs": [
|
@@ -170,8 +170,8 @@
|
|
170
170
|
"type": "function"
|
171
171
|
}
|
172
172
|
],
|
173
|
-
"bytecode": "
|
174
|
-
"deployedBytecode": "
|
173
|
+
"bytecode": "0x61039161003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100925760003560e01c80638e4ad86c116100655780638e4ad86c1461012157806394aa449c14610144578063a123b37c14610152578063c9e66e291461017957600080fd5b806304b8f6c5146100975780632efe0113146100b357806349a7111a146100c657806355601007146100fd575b600080fd5b60005b60405162ffffff90911681526020015b60405180910390f35b61009a6100c136600461026e565b610190565b6100d96100d436600461029a565b610231565b6040805160ff948516815292841660208401529216918101919091526060016100aa565b61011361010b36600461029a565b62ffffff1690565b6040519081526020016100aa565b61013261012f3660046102c6565b90565b60405160ff90911681526020016100aa565b61009a61012f3660046102df565b61016061010b36600461029a565b60405167ffffffffffffffff90911681526020016100aa565b61013261018736600461029a565b60101c60ff1690565b6000610100841080156101a4575061010083105b80156101b1575061010082105b61020c5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5652532d3031303a56455253494f4e5f504152545f544f4f5f42604482015261494760f01b606482015260840160405180910390fd5b8161021f600885901b601087901b61031f565b610229919061031f565b949350505050565b600080808360ff601082901c166102488383610338565b915061ffff600883901c16600061025f8185610338565b92989197509195509350505050565b60008060006060848603121561028357600080fd5b505081359360208301359350604090920135919050565b6000602082840312156102ac57600080fd5b813562ffffff811681146102bf57600080fd5b9392505050565b6000602082840312156102d857600080fd5b5035919050565b6000602082840312156102f157600080fd5b813567ffffffffffffffff811681146102bf57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561033257610332610309565b92915050565b62ffffff82811682821603908082111561035457610354610309565b509291505056fea26469706673582212201d4dd35474cec161a16fe12e8c428c93b28e9b80e6b379b8fbcd0128635f549264736f6c63430008140033",
|
174
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100925760003560e01c80638e4ad86c116100655780638e4ad86c1461012157806394aa449c14610144578063a123b37c14610152578063c9e66e291461017957600080fd5b806304b8f6c5146100975780632efe0113146100b357806349a7111a146100c657806355601007146100fd575b600080fd5b60005b60405162ffffff90911681526020015b60405180910390f35b61009a6100c136600461026e565b610190565b6100d96100d436600461029a565b610231565b6040805160ff948516815292841660208401529216918101919091526060016100aa565b61011361010b36600461029a565b62ffffff1690565b6040519081526020016100aa565b61013261012f3660046102c6565b90565b60405160ff90911681526020016100aa565b61009a61012f3660046102df565b61016061010b36600461029a565b60405167ffffffffffffffff90911681526020016100aa565b61013261018736600461029a565b60101c60ff1690565b6000610100841080156101a4575061010083105b80156101b1575061010082105b61020c5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5652532d3031303a56455253494f4e5f504152545f544f4f5f42604482015261494760f01b606482015260840160405180910390fd5b8161021f600885901b601087901b61031f565b610229919061031f565b949350505050565b600080808360ff601082901c166102488383610338565b915061ffff600883901c16600061025f8185610338565b92989197509195509350505050565b60008060006060848603121561028357600080fd5b505081359360208301359350604090920135919050565b6000602082840312156102ac57600080fd5b813562ffffff811681146102bf57600080fd5b9392505050565b6000602082840312156102d857600080fd5b5035919050565b6000602082840312156102f157600080fd5b813567ffffffffffffffff811681146102bf57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561033257610332610309565b92915050565b62ffffff82811682821603908082111561035457610354610309565b509291505056fea26469706673582212201d4dd35474cec161a16fe12e8c428c93b28e9b80e6b379b8fbcd0128635f549264736f6c63430008140033",
|
175
175
|
"linkReferences": {},
|
176
176
|
"deployedLinkReferences": {}
|
177
177
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"_format": "hh-sol-artifact-1",
|
3
3
|
"contractName": "VersionPartLib",
|
4
|
-
"sourceName": "contracts/
|
4
|
+
"sourceName": "contracts/type/Version.sol",
|
5
5
|
"abi": [
|
6
6
|
{
|
7
7
|
"inputs": [
|
@@ -42,8 +42,8 @@
|
|
42
42
|
"type": "function"
|
43
43
|
}
|
44
44
|
],
|
45
|
-
"bytecode": "
|
46
|
-
"deployedBytecode": "
|
45
|
+
"bytecode": "0x60fb610039600b82828239805160001a60731461002c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80638e4ad86c146042578063ac43d834146067575b600080fd5b6050604d3660046085565b90565b60405160ff90911681526020015b60405180910390f35b60786072366004609d565b60ff1690565b604051908152602001605e565b600060208284031215609657600080fd5b5035919050565b60006020828403121560ae57600080fd5b813560ff8116811460be57600080fd5b939250505056fea2646970667358221220d4e44d0551a02092949fff97b216e1f9b3b93142e68e155f5815f857f381e5e264736f6c63430008140033",
|
46
|
+
"deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80638e4ad86c146042578063ac43d834146067575b600080fd5b6050604d3660046085565b90565b60405160ff90911681526020015b60405180910390f35b60786072366004609d565b60ff1690565b604051908152602001605e565b600060208284031215609657600080fd5b5035919050565b60006020828403121560ae57600080fd5b813560ff8116811460be57600080fd5b939250505056fea2646970667358221220d4e44d0551a02092949fff97b216e1f9b3b93142e68e155f5815f857f381e5e264736f6c63430008140033",
|
47
47
|
"linkReferences": {},
|
48
48
|
"deployedLinkReferences": {}
|
49
49
|
}
|
@@ -1,13 +1,13 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
|
-
import {DISTRIBUTION} from "../
|
5
|
-
import {IDistributionService} from "
|
6
|
-
import {IProductService} from "../
|
7
|
-
import {NftId, zeroNftId, NftIdLib, toNftId} from "../
|
8
|
-
import {ReferralId, ReferralStatus, ReferralLib} from "../
|
9
|
-
import {Fee, FeeLib} from "../
|
10
|
-
import {Component} from "
|
4
|
+
import {DISTRIBUTION} from "../type/ObjectType.sol";
|
5
|
+
import {IDistributionService} from "./IDistributionService.sol";
|
6
|
+
import {IProductService} from "../product/IProductService.sol";
|
7
|
+
import {NftId, zeroNftId, NftIdLib, toNftId} from "../type/NftId.sol";
|
8
|
+
import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
|
9
|
+
import {Fee, FeeLib} from "../type/Fee.sol";
|
10
|
+
import {Component} from "../shared/Component.sol";
|
11
11
|
import {IDistribution} from "../instance/module/IDistribution.sol";
|
12
12
|
import {IDistributionComponent} from "./IDistributionComponent.sol";
|
13
13
|
import {IRegistry} from "../registry/IRegistry.sol";
|
@@ -16,9 +16,9 @@ import {ISetup} from "../instance/module/ISetup.sol";
|
|
16
16
|
import {Registerable} from "../shared/Registerable.sol";
|
17
17
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
18
18
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
19
|
-
import {UFixed} from "../
|
20
|
-
import {DistributorType} from "../
|
21
|
-
import {Timestamp, TimestampLib} from "../
|
19
|
+
import {UFixed} from "../type/UFixed.sol";
|
20
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
21
|
+
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
22
22
|
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
23
23
|
|
24
24
|
|
@@ -37,6 +37,8 @@ abstract contract Distribution is
|
|
37
37
|
mapping(address distributor => NftId distributorNftId) _distributorNftId;
|
38
38
|
}
|
39
39
|
|
40
|
+
error ErrorDistributionAlreadyDistributor(address distributor, NftId distributorNftId);
|
41
|
+
|
40
42
|
function initializeDistribution(
|
41
43
|
address registry,
|
42
44
|
NftId instanceNftId,
|
@@ -58,7 +60,7 @@ abstract contract Distribution is
|
|
58
60
|
$._minDistributionOwnerFee = minDistributionOwnerFee;
|
59
61
|
$._distributionFee = distributionFee;
|
60
62
|
$._tokenHandler = new TokenHandler(token);
|
61
|
-
$._distributionService =
|
63
|
+
$._distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
62
64
|
|
63
65
|
registerInterface(type(IDistributionComponent).interfaceId);
|
64
66
|
}
|
@@ -116,7 +118,9 @@ abstract contract Distribution is
|
|
116
118
|
returns(NftId distributorNftId)
|
117
119
|
{
|
118
120
|
DistributionStorage storage $ = _getDistributionStorage();
|
119
|
-
|
121
|
+
if($._distributorNftId[distributor].gtz()) {
|
122
|
+
revert ErrorDistributionAlreadyDistributor(distributor, $._distributorNftId[distributor]);
|
123
|
+
}
|
120
124
|
|
121
125
|
distributorNftId = $._distributionService.createDistributor(
|
122
126
|
distributor,
|
@@ -136,10 +140,11 @@ abstract contract Distribution is
|
|
136
140
|
// and add it
|
137
141
|
{
|
138
142
|
DistributionStorage storage $ = _getDistributionStorage();
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
+
// TODO re-enable once implemented
|
144
|
+
// $._distributionService.updateDistributorType(
|
145
|
+
// distributorNftId,
|
146
|
+
// distributorType,
|
147
|
+
// data);
|
143
148
|
}
|
144
149
|
|
145
150
|
/**
|
@@ -1,39 +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";
|
36
|
-
import {InstanceStore} from "../InstanceStore.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";
|
37
39
|
|
38
40
|
|
39
41
|
contract DistributionService is
|
@@ -92,6 +94,7 @@ contract DistributionService is
|
|
92
94
|
// TODO move to distribution?
|
93
95
|
bytes4[][] memory selectors = new bytes4[][](2);
|
94
96
|
selectors[0] = new bytes4[](1);
|
97
|
+
// TODO check if array size should be 1 instead of 2
|
95
98
|
selectors[1] = new bytes4[](2);
|
96
99
|
|
97
100
|
selectors[0][0] = IDistributionComponent.setFees.selector;
|
@@ -120,7 +123,7 @@ contract DistributionService is
|
|
120
123
|
revert ErrorIDistributionServiceMinFeeTooHigh(minDistributionOwnerFee.fractionalFee.toInt(), distributionFee.fractionalFee.toInt());
|
121
124
|
}
|
122
125
|
|
123
|
-
(NftId distributionNftId
|
126
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
|
124
127
|
InstanceReader instanceReader = instance.getInstanceReader();
|
125
128
|
|
126
129
|
ISetup.DistributionSetupInfo memory distSetupInfo = instanceReader.getDistributionSetupInfo(distributionNftId);
|
@@ -144,7 +147,7 @@ contract DistributionService is
|
|
144
147
|
external
|
145
148
|
returns (DistributorType distributorType)
|
146
149
|
{
|
147
|
-
(NftId distributionNftId
|
150
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
|
148
151
|
|
149
152
|
{
|
150
153
|
ISetup.DistributionSetupInfo memory setupInfo = instance.getInstanceReader().getDistributionSetupInfo(distributionNftId);
|
@@ -154,33 +157,33 @@ contract DistributionService is
|
|
154
157
|
revert ErrorIDistributionServiceMaxDiscountTooHigh(maxDiscountPercentage.toInt(), maxDiscountPercentageLimit.toInt());
|
155
158
|
}
|
156
159
|
}
|
157
|
-
|
160
|
+
|
158
161
|
distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
data);
|
172
|
-
|
173
|
-
instance.getInstanceStore().createDistributorType(key32, info);
|
174
|
-
}
|
162
|
+
IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
|
163
|
+
name,
|
164
|
+
minDiscountPercentage,
|
165
|
+
maxDiscountPercentage,
|
166
|
+
commissionPercentage,
|
167
|
+
maxReferralCount,
|
168
|
+
maxReferralLifetime,
|
169
|
+
allowSelfReferrals,
|
170
|
+
allowRenewals,
|
171
|
+
data);
|
172
|
+
|
173
|
+
instance.getInstanceStore().createDistributorType(distributorType, info);
|
175
174
|
}
|
176
175
|
|
176
|
+
|
177
177
|
function createDistributor(
|
178
178
|
address distributor,
|
179
179
|
DistributorType distributorType,
|
180
180
|
bytes memory data
|
181
|
-
)
|
181
|
+
)
|
182
|
+
external
|
183
|
+
virtual
|
184
|
+
returns (NftId distributorNftId)
|
182
185
|
{
|
183
|
-
(NftId distributionNftId
|
186
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
|
184
187
|
|
185
188
|
distributorNftId = getRegistryService().registerDistributor(
|
186
189
|
IRegistry.ObjectInfo(
|
@@ -197,25 +200,27 @@ contract DistributionService is
|
|
197
200
|
distributorType,
|
198
201
|
true, // active
|
199
202
|
data,
|
200
|
-
|
203
|
+
AmountLib.zero(),
|
201
204
|
0);
|
202
205
|
|
203
206
|
instance.getInstanceStore().createDistributor(distributorNftId, info);
|
204
207
|
}
|
205
208
|
|
206
|
-
function updateDistributorType(
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
)
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
209
|
+
// function updateDistributorType(
|
210
|
+
// NftId distributorNftId,
|
211
|
+
// DistributorType distributorType,
|
212
|
+
// bytes memory data
|
213
|
+
// )
|
214
|
+
// external
|
215
|
+
// virtual
|
216
|
+
// {
|
217
|
+
// (, IInstance instance) = _getAndVerifyCallingDistribution();
|
218
|
+
// InstanceReader instanceReader = instance.getInstanceReader();
|
219
|
+
// IDistribution.DistributorInfo memory distributorInfo = instanceReader.getDistributorInfo(distributorNftId);
|
220
|
+
// distributorInfo.distributorType = distributorType;
|
221
|
+
// distributorInfo.data = data;
|
222
|
+
// instance.updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
|
223
|
+
// }
|
219
224
|
|
220
225
|
|
221
226
|
function createReferral(
|
@@ -230,7 +235,7 @@ contract DistributionService is
|
|
230
235
|
virtual
|
231
236
|
returns (ReferralId referralId)
|
232
237
|
{
|
233
|
-
(NftId distributionNftId
|
238
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
|
234
239
|
|
235
240
|
if (bytes(code).length == 0) {
|
236
241
|
revert ErrorIDistributionServiceInvalidReferral(code);
|
@@ -240,8 +245,7 @@ contract DistributionService is
|
|
240
245
|
}
|
241
246
|
|
242
247
|
InstanceReader instanceReader = instance.getInstanceReader();
|
243
|
-
|
244
|
-
DistributorType distributorType = distributorInfo.distributorType;
|
248
|
+
DistributorType distributorType = instanceReader.getDistributorInfo(distributorNftId).distributorType;
|
245
249
|
IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
|
246
250
|
|
247
251
|
if (distributorTypeData.maxReferralCount < maxReferrals) {
|
@@ -268,15 +272,15 @@ contract DistributionService is
|
|
268
272
|
data
|
269
273
|
);
|
270
274
|
|
271
|
-
instance.getInstanceStore().createReferral(referralId
|
275
|
+
instance.getInstanceStore().createReferral(referralId, info);
|
272
276
|
return referralId;
|
273
277
|
}
|
274
278
|
|
275
279
|
function processSale(
|
276
|
-
NftId distributionNftId,
|
280
|
+
NftId distributionNftId, // assume always of distribution type
|
277
281
|
ReferralId referralId,
|
278
282
|
IPolicy.Premium memory premium,
|
279
|
-
|
283
|
+
Amount transferredDistributionFeeAmount
|
280
284
|
)
|
281
285
|
external
|
282
286
|
virtual
|
@@ -295,100 +299,31 @@ contract DistributionService is
|
|
295
299
|
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
296
300
|
ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
|
297
301
|
|
298
|
-
|
299
|
-
|
302
|
+
Amount distributionOwnerFee = AmountLib.toAmount(premium.distributionOwnerFeeFixAmount + premium.distributionOwnerFeeVarAmount);
|
303
|
+
Amount commissionAmount = AmountLib.toAmount(premium.commissionAmount);
|
300
304
|
|
301
|
-
if (transferredDistributionFeeAmount
|
302
|
-
revert
|
305
|
+
if (!(transferredDistributionFeeAmount == distributionOwnerFee + commissionAmount)) {
|
306
|
+
revert ErrorDistributionServiceInvalidFeeTransferred(transferredDistributionFeeAmount, distributionOwnerFee + commissionAmount);
|
303
307
|
}
|
304
308
|
|
305
309
|
|
306
|
-
if (distributionOwnerFee
|
307
|
-
setupInfo.sumDistributionOwnerFees += distributionOwnerFee;
|
310
|
+
if (distributionOwnerFee.gtz()) {
|
311
|
+
setupInfo.sumDistributionOwnerFees += distributionOwnerFee.toInt();
|
308
312
|
store.updateDistributionSetup(distributionNftId, setupInfo, KEEP_STATE());
|
309
313
|
}
|
310
314
|
|
311
315
|
if (isReferral) {
|
312
316
|
referralInfo.usedReferrals += 1;
|
313
|
-
store.updateReferral(referralId
|
317
|
+
store.updateReferral(referralId, referralInfo, KEEP_STATE());
|
314
318
|
|
315
|
-
if (commissionAmount
|
316
|
-
distributorInfo.
|
319
|
+
if (commissionAmount.gtz()) {
|
320
|
+
distributorInfo.commissionAmount = distributorInfo.commissionAmount + commissionAmount;
|
317
321
|
distributorInfo.numPoliciesSold += 1;
|
318
322
|
store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
|
319
323
|
}
|
320
324
|
}
|
321
325
|
}
|
322
326
|
|
323
|
-
function calculateFeeAmount(
|
324
|
-
NftId distributionNftId,
|
325
|
-
ReferralId referralId,
|
326
|
-
IPolicy.Premium memory premium
|
327
|
-
)
|
328
|
-
external
|
329
|
-
virtual
|
330
|
-
view
|
331
|
-
returns (IPolicy.Premium memory finalPremium)
|
332
|
-
{
|
333
|
-
IInstance instance = _getInstanceForDistribution(distributionNftId);
|
334
|
-
InstanceReader reader = instance.getInstanceReader();
|
335
|
-
|
336
|
-
// first calculate all fixed and variable fees for the distribution - this will defined the fullPremium
|
337
|
-
ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
|
338
|
-
Fee memory distributionFee = setupInfo.distributionFee;
|
339
|
-
Fee memory minDistributionOwnerFee = setupInfo.minDistributionOwnerFee;
|
340
|
-
uint256 distributionFeeVarAmount = (UFixedLib.toUFixed(premium.netPremiumAmount) * distributionFee.fractionalFee).toInt();
|
341
|
-
premium.distributionFeeVarAmount = distributionFeeVarAmount;
|
342
|
-
premium.fullPremiumAmount += distributionFeeVarAmount;
|
343
|
-
|
344
|
-
// if the referral is not valid, then the distribution owner gets everything
|
345
|
-
if (! referralIsValid(distributionNftId, referralId)) {
|
346
|
-
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
347
|
-
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
348
|
-
premium.premiumAmount = premium.fullPremiumAmount;
|
349
|
-
return premium;
|
350
|
-
}
|
351
|
-
|
352
|
-
// if the referral is valid, the the commission and discount are calculated based in the full premium
|
353
|
-
// the remaing amount goes to the distribution owner
|
354
|
-
{
|
355
|
-
IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
|
356
|
-
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
357
|
-
IDistribution.DistributorTypeInfo memory distributorTypeInfo = reader.getDistributorTypeInfo(distributorInfo.distributorType);
|
358
|
-
|
359
|
-
uint256 commissionAmount = UFixedLib.toUFixed(premium.netPremiumAmount).mul(distributorTypeInfo.commissionPercentage).toInt();
|
360
|
-
premium.commissionAmount = commissionAmount;
|
361
|
-
premium.discountAmount = UFixedLib.toUFixed(premium.fullPremiumAmount).mul(referralInfo.discountPercentage).toInt();
|
362
|
-
premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
|
363
|
-
premium.distributionOwnerFeeVarAmount = distributionFeeVarAmount - commissionAmount - premium.discountAmount;
|
364
|
-
premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
|
365
|
-
}
|
366
|
-
|
367
|
-
// sanity check to validate the fee calculation
|
368
|
-
if (premium.distributionOwnerFeeFixAmount < minDistributionOwnerFee.fixedFee) {
|
369
|
-
revert ErrorIDistributionServiceFeeCalculationMismatch(
|
370
|
-
premium.distributionFeeFixAmount,
|
371
|
-
premium.distributionFeeVarAmount,
|
372
|
-
premium.distributionOwnerFeeFixAmount,
|
373
|
-
premium.distributionOwnerFeeVarAmount,
|
374
|
-
premium.commissionAmount,
|
375
|
-
premium.discountAmount
|
376
|
-
);
|
377
|
-
}
|
378
|
-
if ((premium.distributionFeeVarAmount) != (premium.discountAmount + premium.distributionOwnerFeeVarAmount + premium.commissionAmount)) {
|
379
|
-
revert ErrorIDistributionServiceFeeCalculationMismatch(
|
380
|
-
premium.distributionFeeFixAmount,
|
381
|
-
premium.distributionFeeVarAmount,
|
382
|
-
premium.distributionOwnerFeeFixAmount,
|
383
|
-
premium.distributionOwnerFeeVarAmount,
|
384
|
-
premium.commissionAmount,
|
385
|
-
premium.discountAmount
|
386
|
-
);
|
387
|
-
}
|
388
|
-
|
389
|
-
return premium;
|
390
|
-
}
|
391
|
-
|
392
327
|
// TODO: zero should return false
|
393
328
|
function referralIsValid(NftId distributionNftId, ReferralId referralId) public view returns (bool isValid) {
|
394
329
|
IInstance instance = _getInstanceForDistribution(distributionNftId);
|
@@ -402,29 +337,6 @@ contract DistributionService is
|
|
402
337
|
isValid = isValid && info.usedReferrals < info.maxReferrals;
|
403
338
|
}
|
404
339
|
|
405
|
-
function _getAndVerifyCallingDistribution()
|
406
|
-
internal
|
407
|
-
view
|
408
|
-
returns(
|
409
|
-
NftId distributionNftId,
|
410
|
-
IInstance instance
|
411
|
-
)
|
412
|
-
{
|
413
|
-
distributionNftId = getRegistry().getNftId(msg.sender);
|
414
|
-
if (distributionNftId.eqz()) {
|
415
|
-
revert ErrorDistributionServiceCallerNotRegistered(msg.sender);
|
416
|
-
}
|
417
|
-
|
418
|
-
IRegistry.ObjectInfo memory info = getRegistry().getObjectInfo(distributionNftId);
|
419
|
-
if(info.objectType != DISTRIBUTION()) {
|
420
|
-
revert ErrorIDistributionServiceCallerNotDistributor(msg.sender);
|
421
|
-
}
|
422
|
-
|
423
|
-
address instanceAddress = getRegistry().getObjectInfo(info.parentNftId).objectAddress;
|
424
|
-
instance = IInstance(instanceAddress);
|
425
|
-
}
|
426
|
-
|
427
|
-
|
428
340
|
function _getInstanceForDistribution(NftId distributionNftId)
|
429
341
|
internal
|
430
342
|
view
|
@@ -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
|
+
}
|