@etherisc/gif-next 0.0.2-c17621f-221 → 0.0.2-c2496d8-605
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 +81 -7
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +496 -255
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +277 -20
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +395 -203
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +143 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +184 -301
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +265 -31
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +103 -185
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +377 -181
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +184 -79
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +90 -167
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +209 -70
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1461 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2018 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +259 -266
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +156 -175
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +332 -221
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +763 -336
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +236 -39
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +144 -93
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +284 -62
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +738 -328
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +209 -94
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +916 -308
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +175 -169
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +114 -63
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +832 -635
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- 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/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +142 -183
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +247 -33
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +104 -116
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +118 -135
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +172 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +148 -55
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +158 -175
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +265 -31
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +200 -269
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +146 -85
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +90 -117
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +133 -156
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +287 -255
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +146 -174
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +472 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +521 -384
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +194 -65
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +196 -57
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +137 -52
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +278 -234
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +265 -31
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +335 -148
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +163 -82
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +131 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +199 -21
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +244 -48
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +117 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +258 -209
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +86 -6
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +388 -151
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +727 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +170 -73
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +178 -135
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +127 -66
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +268 -224
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +172 -67
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +137 -52
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +126 -26
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +170 -62
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +593 -436
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +112 -183
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +112 -47
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +426 -258
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +94 -93
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +446 -527
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +151 -88
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +661 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +81 -75
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +394 -300
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +104 -116
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -6
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +117 -134
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +18 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +18 -8
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +152 -38
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +60 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +170 -117
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +155 -23
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +276 -200
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +147 -61
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +41 -73
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +227 -62
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +129 -52
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +205 -150
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +60 -50
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +89 -37
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +261 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +337 -222
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +350 -202
- package/contracts/authorization/IAccess.sol +13 -4
- package/contracts/authorization/IAccessAdmin.sol +69 -35
- package/contracts/authorization/IAuthorization.sol +33 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +20 -17
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +36 -87
- package/contracts/distribution/DistributionService.sol +169 -107
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -10
- package/contracts/distribution/IDistributionService.sol +22 -20
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +43 -12
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +8 -12
- package/contracts/examples/unpermissioned/SimplePool.sol +36 -10
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +51 -29
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +60 -17
- package/contracts/instance/IInstanceService.sol +27 -31
- package/contracts/instance/Instance.sol +115 -40
- package/contracts/instance/InstanceAdmin.sol +287 -122
- package/contracts/instance/InstanceAuthorizationV3.sol +90 -59
- package/contracts/instance/InstanceReader.sol +259 -39
- package/contracts/instance/InstanceService.sol +186 -194
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +3 -5
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +29 -13
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +30 -9
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/oracle/BasicOracle.sol +1 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +5 -18
- package/contracts/oracle/OracleService.sol +115 -84
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +32 -25
- package/contracts/pool/BasicPoolAuthorization.sol +27 -9
- package/contracts/pool/BundleService.sol +99 -141
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +15 -34
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +70 -65
- package/contracts/pool/Pool.sol +136 -119
- package/contracts/pool/PoolLib.sol +309 -0
- package/contracts/pool/PoolService.sol +327 -249
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +77 -25
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +9 -13
- package/contracts/product/BasicProductAuthorization.sol +24 -11
- package/contracts/product/ClaimService.sol +308 -155
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +8 -2
- package/contracts/product/IClaimService.sol +17 -4
- package/contracts/product/IPolicyService.sol +33 -11
- package/contracts/product/IPricingService.sol +10 -9
- package/contracts/product/IProductComponent.sol +27 -4
- package/contracts/product/IRiskService.sol +7 -7
- package/contracts/product/PolicyService.sol +339 -272
- package/contracts/product/PolicyServiceLib.sol +119 -0
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +44 -35
- package/contracts/product/PricingServiceManager.sol +4 -4
- package/contracts/product/Product.sol +118 -76
- package/contracts/product/RiskService.sol +90 -33
- package/contracts/product/RiskServiceManager.sol +4 -4
- package/contracts/registry/ChainNft.sol +10 -11
- package/contracts/registry/IRegistry.sol +20 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +36 -8
- package/contracts/registry/RegistryAdmin.sol +145 -351
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +36 -47
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +271 -245
- package/contracts/registry/ServiceAuthorizationV3.sol +183 -50
- package/contracts/registry/TokenRegistry.sol +10 -9
- package/contracts/shared/Component.sol +61 -119
- package/contracts/shared/ComponentService.sol +393 -373
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ContractLib.sol +347 -0
- package/contracts/shared/IComponent.sol +5 -17
- package/contracts/shared/IComponentService.sol +42 -40
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -13
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +69 -47
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +27 -7
- package/contracts/shared/PolicyHolder.sol +12 -6
- package/contracts/shared/Registerable.sol +50 -19
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +275 -72
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +23 -12
- package/contracts/staking/IStakingService.sol +19 -4
- package/contracts/staking/Staking.sol +97 -49
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +18 -21
- package/contracts/staking/StakingService.sol +84 -24
- package/contracts/staking/StakingServiceManager.sol +6 -5
- package/contracts/staking/StakingStore.sol +2 -1
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +54 -35
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +23 -15
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +14 -1
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +37 -126
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/ProxyManager.sol +79 -43
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +5 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -427
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentVerifyingService.sol +0 -117
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -1,19 +1,21 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {COMPONENT, DISTRIBUTION} from "../type/ObjectType.sol";
|
6
4
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
7
|
-
import {IDistributionService} from "./IDistributionService.sol";
|
8
|
-
import {NftId, NftIdLib} from "../type/NftId.sol";
|
9
|
-
import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
|
10
|
-
import {Fee} from "../type/Fee.sol";
|
11
|
-
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
12
5
|
import {IComponentService} from "../shared/IComponentService.sol";
|
13
6
|
import {IDistributionComponent} from "./IDistributionComponent.sol";
|
14
|
-
import {
|
7
|
+
import {IDistributionService} from "./IDistributionService.sol";
|
8
|
+
|
9
|
+
import {Amount} from "../type/Amount.sol";
|
10
|
+
import {COMPONENT, DISTRIBUTION, DISTRIBUTOR} from "../type/ObjectType.sol";
|
15
11
|
import {DistributorType} from "../type/DistributorType.sol";
|
12
|
+
import {Fee} from "../type/Fee.sol";
|
13
|
+
import {NftId} from "../type/NftId.sol";
|
14
|
+
import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
|
15
|
+
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
16
|
+
import {Seconds} from "../type/Seconds.sol";
|
16
17
|
import {Timestamp} from "../type/Timestamp.sol";
|
18
|
+
import {UFixed} from "../type/UFixed.sol";
|
17
19
|
|
18
20
|
|
19
21
|
abstract contract Distribution is
|
@@ -26,46 +28,32 @@ abstract contract Distribution is
|
|
26
28
|
struct DistributionStorage {
|
27
29
|
IComponentService _componentService;
|
28
30
|
IDistributionService _distributionService;
|
29
|
-
mapping(address distributor => NftId distributorNftId) _distributorNftId;
|
30
31
|
}
|
31
32
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
_;
|
37
|
-
}
|
38
|
-
|
39
|
-
function register()
|
33
|
+
function processRenewal(
|
34
|
+
ReferralId referralId,
|
35
|
+
uint256 feeAmount
|
36
|
+
)
|
40
37
|
external
|
41
38
|
virtual
|
42
|
-
|
43
|
-
{
|
44
|
-
_getDistributionStorage()._componentService.registerDistribution();
|
45
|
-
_approveTokenHandler(type(uint256).max);
|
46
|
-
}
|
47
|
-
|
48
|
-
|
49
|
-
function isDistributor(address candidate)
|
50
|
-
public
|
51
|
-
view
|
52
|
-
returns (bool)
|
39
|
+
restricted()
|
53
40
|
{
|
54
|
-
|
55
|
-
return $._distributorNftId[candidate].gtz();
|
41
|
+
// default is no action
|
56
42
|
}
|
57
43
|
|
58
44
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
45
|
+
/// @inheritdoc IDistributionComponent
|
46
|
+
function withdrawCommission(NftId distributorNftId, Amount amount)
|
47
|
+
external
|
48
|
+
virtual
|
49
|
+
restricted()
|
50
|
+
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
51
|
+
onlyNftOwner(distributorNftId)
|
52
|
+
returns (Amount withdrawnAmount)
|
63
53
|
{
|
64
|
-
|
65
|
-
return $._distributorNftId[distributor];
|
54
|
+
return _withdrawCommission(distributorNftId, amount);
|
66
55
|
}
|
67
56
|
|
68
|
-
|
69
57
|
function getDiscountPercentage(string memory referralCode)
|
70
58
|
external
|
71
59
|
view
|
@@ -106,42 +94,19 @@ abstract contract Distribution is
|
|
106
94
|
}
|
107
95
|
|
108
96
|
|
109
|
-
function processRenewal(
|
110
|
-
ReferralId referralId,
|
111
|
-
uint256 feeAmount
|
112
|
-
)
|
113
|
-
external
|
114
|
-
virtual
|
115
|
-
restricted()
|
116
|
-
{
|
117
|
-
// default is no action
|
118
|
-
}
|
119
|
-
|
120
97
|
/// @dev Returns true iff the component needs to be called when selling/renewing policis
|
121
98
|
function isVerifying() external pure returns (bool verifying) {
|
122
99
|
return true;
|
123
100
|
}
|
124
101
|
|
125
|
-
|
126
|
-
function withdrawCommission(NftId distributorNftId, Amount amount)
|
127
|
-
external
|
128
|
-
virtual
|
129
|
-
restricted()
|
130
|
-
onlyDistributor()
|
131
|
-
onlyNftOwner(distributorNftId)
|
132
|
-
returns (Amount withdrawnAmount)
|
133
|
-
{
|
134
|
-
return _withdrawCommission(distributorNftId, amount);
|
135
|
-
}
|
136
|
-
|
102
|
+
|
137
103
|
function _initializeDistribution(
|
138
104
|
address registry,
|
139
|
-
NftId
|
105
|
+
NftId productNftId,
|
140
106
|
IAuthorization authorization,
|
107
|
+
bool isInterceptor,
|
141
108
|
address initialOwner,
|
142
109
|
string memory name,
|
143
|
-
address token,
|
144
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
145
110
|
bytes memory componentData // component specifidc data
|
146
111
|
)
|
147
112
|
internal
|
@@ -150,14 +115,12 @@ abstract contract Distribution is
|
|
150
115
|
{
|
151
116
|
_initializeInstanceLinkedComponent(
|
152
117
|
registry,
|
153
|
-
|
118
|
+
productNftId,
|
154
119
|
name,
|
155
|
-
token,
|
156
120
|
DISTRIBUTION(),
|
157
121
|
authorization,
|
158
|
-
|
122
|
+
isInterceptor,
|
159
123
|
initialOwner,
|
160
|
-
registryData,
|
161
124
|
componentData);
|
162
125
|
|
163
126
|
DistributionStorage storage $ = _getDistributionStorage();
|
@@ -187,7 +150,7 @@ abstract contract Distribution is
|
|
187
150
|
UFixed maxDiscountPercentage,
|
188
151
|
UFixed commissionPercentage,
|
189
152
|
uint32 maxReferralCount,
|
190
|
-
|
153
|
+
Seconds maxReferralLifetime,
|
191
154
|
bool allowSelfReferrals,
|
192
155
|
bool allowRenewals,
|
193
156
|
bytes memory data
|
@@ -220,20 +183,15 @@ abstract contract Distribution is
|
|
220
183
|
returns(NftId distributorNftId)
|
221
184
|
{
|
222
185
|
DistributionStorage storage $ = _getDistributionStorage();
|
223
|
-
if($._distributorNftId[distributor].gtz()) {
|
224
|
-
revert ErrorDistributionAlreadyDistributor(distributor, $._distributorNftId[distributor]);
|
225
|
-
}
|
226
186
|
|
227
187
|
distributorNftId = $._distributionService.createDistributor(
|
228
188
|
distributor,
|
229
189
|
distributorType,
|
230
190
|
data);
|
231
|
-
|
232
|
-
$._distributorNftId[distributor] = distributorNftId;
|
233
191
|
}
|
234
192
|
|
235
193
|
/// @dev Uptates the distributor type for the specified distributor.
|
236
|
-
function
|
194
|
+
function _changeDistributorType(
|
237
195
|
NftId distributorNftId,
|
238
196
|
DistributorType distributorType,
|
239
197
|
bytes memory data
|
@@ -242,11 +200,10 @@ abstract contract Distribution is
|
|
242
200
|
virtual
|
243
201
|
{
|
244
202
|
DistributionStorage storage $ = _getDistributionStorage();
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
// data);
|
203
|
+
$._distributionService.changeDistributorType(
|
204
|
+
distributorNftId,
|
205
|
+
distributorType,
|
206
|
+
data);
|
250
207
|
}
|
251
208
|
|
252
209
|
/// @dev Create a new referral code for the provided distributor.
|
@@ -279,14 +236,6 @@ abstract contract Distribution is
|
|
279
236
|
return _getDistributionStorage()._distributionService.withdrawCommission(distributorNftId, amount);
|
280
237
|
}
|
281
238
|
|
282
|
-
function _nftTransferFrom(address from, address to, uint256 tokenId) internal virtual override {
|
283
|
-
// keep track of distributor nft owner
|
284
|
-
emit LogDistributorUpdated(to, msg.sender);
|
285
|
-
DistributionStorage storage $ = _getDistributionStorage();
|
286
|
-
$._distributorNftId[from] = NftIdLib.zero();
|
287
|
-
$._distributorNftId[to] = NftIdLib.toNftId(tokenId);
|
288
|
-
}
|
289
|
-
|
290
239
|
function _getDistributionStorage() private pure returns (DistributionStorage storage $) {
|
291
240
|
assembly {
|
292
241
|
$.slot := DISTRIBUTION_STORAGE_LOCATION_V1
|
@@ -1,33 +1,37 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {IInstance} from "../instance/IInstance.sol";
|
4
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
6
5
|
import {IComponentService} from "../shared/IComponentService.sol";
|
6
|
+
import {IDistribution} from "../instance/module/IDistribution.sol";
|
7
|
+
import {IDistributionService} from "./IDistributionService.sol";
|
8
|
+
import {IInstance} from "../instance/IInstance.sol";
|
7
9
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
10
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
8
11
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
9
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
10
12
|
import {IComponents} from "../instance/module/IComponents.sol";
|
11
13
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
12
14
|
|
13
15
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
16
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
17
|
+
import {Service} from "../shared/Service.sol";
|
18
|
+
import {DistributorType, DistributorTypeLib} from "../type/DistributorType.sol";
|
14
19
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
15
20
|
import {KEEP_STATE} from "../type/StateId.sol";
|
16
|
-
import {ObjectType, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
|
17
|
-
import {
|
18
|
-
import {
|
19
|
-
import {UFixed} from "../type/UFixed.sol";
|
20
|
-
import {DistributorType, DistributorTypeLib} from "../type/DistributorType.sol";
|
21
|
+
import {ObjectType, ACCOUNTING, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
|
22
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
23
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
21
24
|
import {ReferralId, ReferralLib} from "../type/Referral.sol";
|
25
|
+
import {Seconds} from "../type/Seconds.sol";
|
22
26
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
23
|
-
import {
|
24
|
-
import {InstanceStore} from "../instance/InstanceStore.sol";
|
27
|
+
import {UFixed} from "../type/UFixed.sol";
|
25
28
|
|
26
29
|
|
27
30
|
contract DistributionService is
|
28
|
-
|
31
|
+
Service,
|
29
32
|
IDistributionService
|
30
33
|
{
|
34
|
+
IAccountingService private _accountingService;
|
31
35
|
IComponentService private _componentService;
|
32
36
|
IInstanceService private _instanceService;
|
33
37
|
IRegistryService private _registryService;
|
@@ -40,13 +44,14 @@ contract DistributionService is
|
|
40
44
|
virtual override
|
41
45
|
initializer()
|
42
46
|
{
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
47
|
+
(
|
48
|
+
address authority,
|
49
|
+
address registry
|
50
|
+
) = abi.decode(data, (address, address));
|
51
|
+
|
52
|
+
__Service_init(authority, registry, owner);
|
49
53
|
|
54
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
50
55
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
51
56
|
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
52
57
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
@@ -61,23 +66,23 @@ contract DistributionService is
|
|
61
66
|
UFixed maxDiscountPercentage,
|
62
67
|
UFixed commissionPercentage,
|
63
68
|
uint32 maxReferralCount,
|
64
|
-
|
69
|
+
Seconds maxReferralLifetime,
|
65
70
|
bool allowSelfReferrals,
|
66
71
|
bool allowRenewals,
|
67
72
|
bytes memory data
|
68
73
|
)
|
69
74
|
external
|
75
|
+
restricted()
|
70
76
|
returns (DistributorType distributorType)
|
71
77
|
{
|
72
|
-
(NftId distributionNftId
|
73
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
78
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
74
79
|
|
75
80
|
{
|
76
|
-
NftId productNftId =
|
77
|
-
IComponents.
|
81
|
+
NftId productNftId = getRegistry().getParentNftId(distributionNftId);
|
82
|
+
IComponents.FeeInfo memory feeInfo = instance.getInstanceReader().getFeeInfo(productNftId);
|
78
83
|
|
79
|
-
UFixed variableDistributionFees =
|
80
|
-
UFixed variableFeesPartsTotal =
|
84
|
+
UFixed variableDistributionFees = feeInfo.distributionFee.fractionalFee;
|
85
|
+
UFixed variableFeesPartsTotal = feeInfo.minDistributionOwnerFee.fractionalFee + commissionPercentage;
|
81
86
|
|
82
87
|
if (variableFeesPartsTotal > variableDistributionFees) {
|
83
88
|
revert ErrorDistributionServiceVariableFeesTooHight(variableDistributionFees.toInt1000(), variableFeesPartsTotal.toInt1000());
|
@@ -90,16 +95,17 @@ contract DistributionService is
|
|
90
95
|
}
|
91
96
|
|
92
97
|
distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
|
93
|
-
IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
|
94
|
-
name,
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
98
|
+
IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo({
|
99
|
+
name: name,
|
100
|
+
distributionNftId: distributionNftId,
|
101
|
+
minDiscountPercentage: minDiscountPercentage,
|
102
|
+
maxDiscountPercentage: maxDiscountPercentage,
|
103
|
+
commissionPercentage: commissionPercentage,
|
104
|
+
maxReferralCount: maxReferralCount,
|
105
|
+
maxReferralLifetime: maxReferralLifetime,
|
106
|
+
allowSelfReferrals: allowSelfReferrals,
|
107
|
+
allowRenewals: allowRenewals,
|
108
|
+
data: data});
|
103
109
|
|
104
110
|
instance.getInstanceStore().createDistributorType(distributorType, info);
|
105
111
|
}
|
@@ -112,9 +118,11 @@ contract DistributionService is
|
|
112
118
|
)
|
113
119
|
external
|
114
120
|
virtual
|
121
|
+
restricted()
|
115
122
|
returns (NftId distributorNftId)
|
116
123
|
{
|
117
|
-
(NftId distributionNftId
|
124
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
125
|
+
_checkDistributionType(instance.getInstanceReader(), distributorType, distributionNftId);
|
118
126
|
|
119
127
|
distributorNftId = _registryService.registerDistributor(
|
120
128
|
IRegistry.ObjectInfo(
|
@@ -127,30 +135,33 @@ contract DistributionService is
|
|
127
135
|
""
|
128
136
|
));
|
129
137
|
|
130
|
-
IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo(
|
131
|
-
distributorType,
|
132
|
-
true,
|
133
|
-
|
134
|
-
|
138
|
+
IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo({
|
139
|
+
distributorType: distributorType,
|
140
|
+
active: true,
|
141
|
+
numPoliciesSold: 0,
|
142
|
+
data: data});
|
135
143
|
|
136
144
|
instance.getInstanceStore().createDistributor(distributorNftId, info);
|
137
145
|
}
|
138
146
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
147
|
+
function changeDistributorType(
|
148
|
+
NftId distributorNftId,
|
149
|
+
DistributorType newDistributorType,
|
150
|
+
bytes memory data
|
151
|
+
)
|
152
|
+
external
|
153
|
+
virtual
|
154
|
+
restricted()
|
155
|
+
{
|
156
|
+
_checkNftType(distributorNftId, DISTRIBUTOR());
|
157
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
158
|
+
_checkDistributionType(instance.getInstanceReader(), newDistributorType, distributionNftId);
|
159
|
+
|
160
|
+
IDistribution.DistributorInfo memory distributorInfo = instance.getInstanceReader().getDistributorInfo(distributorNftId);
|
161
|
+
distributorInfo.distributorType = newDistributorType;
|
162
|
+
distributorInfo.data = data;
|
163
|
+
instance.getInstanceStore().updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
|
164
|
+
}
|
154
165
|
|
155
166
|
|
156
167
|
function createReferral(
|
@@ -163,47 +174,58 @@ contract DistributionService is
|
|
163
174
|
)
|
164
175
|
external
|
165
176
|
virtual
|
177
|
+
restricted()
|
178
|
+
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
166
179
|
returns (ReferralId referralId)
|
167
180
|
{
|
168
|
-
(NftId distributionNftId
|
181
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
169
182
|
|
170
183
|
if (bytes(code).length == 0) {
|
171
|
-
revert
|
184
|
+
revert ErrorDistributionServiceInvalidReferral(code);
|
172
185
|
}
|
173
|
-
if (expiryAt.eqz()) {
|
174
|
-
revert
|
186
|
+
if (expiryAt.eqz() || expiryAt.lte(TimestampLib.blockTimestamp())) {
|
187
|
+
revert ErrorDistributionServiceExpirationInvalid(expiryAt);
|
175
188
|
}
|
176
189
|
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
if (distributorTypeData.maxReferralCount < maxReferrals) {
|
182
|
-
revert ErrorIDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
|
183
|
-
}
|
184
|
-
if (distributorTypeData.minDiscountPercentage > discountPercentage) {
|
185
|
-
revert ErrorIDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
|
190
|
+
NftId distributorDistributionNftId = getRegistry().getParentNftId(distributorNftId);
|
191
|
+
if (distributorDistributionNftId != distributionNftId) {
|
192
|
+
revert ErrorDistributionServiceDistributorDistributionMismatch(distributorNftId, distributorDistributionNftId, distributionNftId);
|
186
193
|
}
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
194
|
+
|
195
|
+
{
|
196
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
197
|
+
DistributorType distributorType = instanceReader.getDistributorInfo(distributorNftId).distributorType;
|
198
|
+
IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
|
199
|
+
|
200
|
+
if (distributorTypeData.maxReferralCount < maxReferrals) {
|
201
|
+
revert ErrorDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
|
202
|
+
}
|
203
|
+
if (distributorTypeData.minDiscountPercentage > discountPercentage) {
|
204
|
+
revert ErrorDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
|
205
|
+
}
|
206
|
+
if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
|
207
|
+
revert ErrorDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
|
208
|
+
}
|
209
|
+
if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime.toInt()) {
|
210
|
+
revert ErrorDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt);
|
211
|
+
}
|
192
212
|
}
|
193
213
|
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
214
|
+
{
|
215
|
+
referralId = ReferralLib.toReferralId(distributionNftId, code);
|
216
|
+
IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo({
|
217
|
+
distributionNftId: distributionNftId,
|
218
|
+
distributorNftId: distributorNftId,
|
219
|
+
referralCode: code,
|
220
|
+
discountPercentage: discountPercentage,
|
221
|
+
maxReferrals: maxReferrals,
|
222
|
+
usedReferrals: 0,
|
223
|
+
expiryAt: expiryAt,
|
224
|
+
data: data
|
225
|
+
});
|
226
|
+
|
227
|
+
instance.getInstanceStore().createReferral(referralId, info);
|
228
|
+
}
|
207
229
|
}
|
208
230
|
|
209
231
|
/// @inheritdoc IDistributionService
|
@@ -213,10 +235,13 @@ contract DistributionService is
|
|
213
235
|
)
|
214
236
|
external
|
215
237
|
virtual
|
216
|
-
restricted
|
238
|
+
restricted()
|
239
|
+
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
217
240
|
{
|
218
241
|
if (referralIsValid(distributionNftId, referralId)) {
|
219
|
-
|
242
|
+
IRegistry registry = getRegistry();
|
243
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(getRegistry(), distributionNftId));
|
244
|
+
|
220
245
|
// update book keeping for referral info
|
221
246
|
IDistribution.ReferralInfo memory referralInfo = instance.getInstanceReader().getReferralInfo(referralId);
|
222
247
|
referralInfo.usedReferrals += 1;
|
@@ -231,9 +256,11 @@ contract DistributionService is
|
|
231
256
|
)
|
232
257
|
external
|
233
258
|
virtual
|
234
|
-
restricted
|
259
|
+
restricted()
|
260
|
+
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
235
261
|
{
|
236
|
-
|
262
|
+
IRegistry registry = getRegistry();
|
263
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(registry, distributionNftId));
|
237
264
|
InstanceReader reader = instance.getInstanceReader();
|
238
265
|
InstanceStore store = instance.getInstanceStore();
|
239
266
|
|
@@ -245,12 +272,12 @@ contract DistributionService is
|
|
245
272
|
|
246
273
|
// increase distribution balance by commission amount and distribution owner fee
|
247
274
|
Amount commissionAmount = premium.commissionAmount;
|
248
|
-
|
275
|
+
_accountingService.increaseDistributionBalance(store, distributionNftId, commissionAmount, distributionOwnerFee);
|
249
276
|
|
250
277
|
// update book keeping for referral info
|
251
278
|
IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
|
252
279
|
|
253
|
-
|
280
|
+
_accountingService.increaseDistributorBalance(store, referralInfo.distributorNftId, AmountLib.zero(), commissionAmount);
|
254
281
|
|
255
282
|
// update book keeping for distributor info
|
256
283
|
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
@@ -258,7 +285,7 @@ contract DistributionService is
|
|
258
285
|
store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
|
259
286
|
} else {
|
260
287
|
// increase distribution balance by distribution owner fee
|
261
|
-
|
288
|
+
_accountingService.increaseDistributionBalance(store, distributionNftId, AmountLib.zero(), distributionOwnerFee);
|
262
289
|
}
|
263
290
|
}
|
264
291
|
|
@@ -266,14 +293,15 @@ contract DistributionService is
|
|
266
293
|
function withdrawCommission(NftId distributorNftId, Amount amount)
|
267
294
|
public
|
268
295
|
virtual
|
269
|
-
|
296
|
+
restricted()
|
297
|
+
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
270
298
|
returns (Amount withdrawnAmount)
|
271
299
|
{
|
272
|
-
(NftId distributionNftId
|
300
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
273
301
|
InstanceReader reader = instance.getInstanceReader();
|
274
302
|
|
275
303
|
IComponents.ComponentInfo memory distributionInfo = reader.getComponentInfo(distributionNftId);
|
276
|
-
address distributionWallet = distributionInfo.
|
304
|
+
// address distributionWallet = distributionInfo.tokenHandler.getWallet();
|
277
305
|
|
278
306
|
Amount commissionAmount = reader.getFeeAmount(distributorNftId);
|
279
307
|
|
@@ -291,43 +319,77 @@ contract DistributionService is
|
|
291
319
|
{
|
292
320
|
InstanceStore store = instance.getInstanceStore();
|
293
321
|
// decrease fee counter for distribution balance
|
294
|
-
|
322
|
+
_accountingService.decreaseDistributionBalance(store, distributionNftId, withdrawnAmount, AmountLib.zero());
|
295
323
|
// decrease fee counter for distributor fee
|
296
|
-
|
324
|
+
_accountingService.decreaseDistributorBalance(store, distributorNftId, AmountLib.zero(), withdrawnAmount);
|
297
325
|
}
|
298
326
|
|
299
327
|
// transfer amount to distributor
|
300
328
|
{
|
301
329
|
address distributor = getRegistry().ownerOf(distributorNftId);
|
302
|
-
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.
|
303
|
-
distributionInfo.tokenHandler.
|
330
|
+
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.tokenHandler.TOKEN()), withdrawnAmount);
|
331
|
+
distributionInfo.tokenHandler.pushToken(distributor, withdrawnAmount);
|
304
332
|
}
|
305
333
|
}
|
306
334
|
|
307
|
-
function referralIsValid(NftId distributionNftId, ReferralId referralId)
|
335
|
+
function referralIsValid(NftId distributionNftId, ReferralId referralId)
|
336
|
+
public
|
337
|
+
view
|
338
|
+
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
339
|
+
returns (bool isValid)
|
340
|
+
{
|
308
341
|
if (distributionNftId.eqz() || referralId.eqz()) {
|
309
342
|
return false;
|
310
343
|
}
|
311
344
|
|
312
|
-
|
345
|
+
IRegistry registry = getRegistry();
|
346
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(registry, distributionNftId));
|
313
347
|
IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
|
314
348
|
|
315
349
|
if (info.distributorNftId.eqz()) {
|
316
350
|
return false;
|
317
351
|
}
|
318
352
|
|
353
|
+
// ensure the referral was created on the same distribution
|
354
|
+
if(info.distributionNftId != distributionNftId) {
|
355
|
+
revert ErrorDistributionServiceReferralDistributionMismatch(referralId, info.distributionNftId, distributionNftId);
|
356
|
+
}
|
357
|
+
|
319
358
|
isValid = info.expiryAt.eqz() || (info.expiryAt.gtz() && TimestampLib.blockTimestamp() <= info.expiryAt);
|
320
359
|
isValid = isValid && info.usedReferrals < info.maxReferrals;
|
321
360
|
}
|
322
361
|
|
323
|
-
function
|
362
|
+
function _checkDistributionType(InstanceReader instanceReader, DistributorType distributorType, NftId expectedDistributionNftId)
|
363
|
+
internal
|
364
|
+
view
|
365
|
+
{
|
366
|
+
// enfore distributor type belongs to the calling distribution
|
367
|
+
NftId distributorTypeDistributionNftId = instanceReader.getDistributorTypeInfo(distributorType).distributionNftId;
|
368
|
+
|
369
|
+
if (distributorTypeDistributionNftId != expectedDistributionNftId) {
|
370
|
+
revert ErrorDistributionServiceDistributorTypeDistributionMismatch(distributorType, distributorTypeDistributionNftId, expectedDistributionNftId);
|
371
|
+
}
|
372
|
+
}
|
373
|
+
|
374
|
+
function _getAndVerifyActiveDistribution()
|
324
375
|
internal
|
325
376
|
view
|
326
|
-
returns(
|
377
|
+
returns (
|
378
|
+
NftId didstributionNftId,
|
379
|
+
IInstance instance
|
380
|
+
)
|
327
381
|
{
|
328
|
-
|
329
|
-
|
330
|
-
|
382
|
+
(
|
383
|
+
IRegistry.ObjectInfo memory info,
|
384
|
+
address instanceAddress
|
385
|
+
) = ContractLib.getAndVerifyComponent(
|
386
|
+
getRegistry(),
|
387
|
+
msg.sender,
|
388
|
+
DISTRIBUTION(),
|
389
|
+
true); // only active pools
|
390
|
+
|
391
|
+
didstributionNftId = info.nftId;
|
392
|
+
instance = IInstance(instanceAddress);
|
331
393
|
}
|
332
394
|
|
333
395
|
function _getDomain() internal pure override returns(ObjectType) {
|