@etherisc/gif-next 0.0.2-93de5de-423 → 0.0.2-94a620b-955
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 +57 -88
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1489 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +258 -488
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1512 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +838 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +282 -319
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +932 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +292 -2124
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +328 -69
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +399 -2883
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +864 -400
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +388 -263
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +115 -74
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3587 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1126 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +338 -285
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1018 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +509 -436
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1474 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +907 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +405 -383
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1198 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1181 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1581 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +746 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +844 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +718 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +401 -404
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1437 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +144 -89
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +886 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +785 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IPricingService.sol/IPricingService.json} +208 -231
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +409 -267
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +91 -64
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1216 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +972 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +766 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1201 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +702 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +192 -19
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -138
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +454 -35
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +373 -87
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +205 -226
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1680 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +804 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +101 -103
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +219 -127
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +700 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +106 -18
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +940 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -23
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +114 -21
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1975 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +765 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +217 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/{components → distribution}/Distribution.sol +180 -193
- package/contracts/distribution/DistributionService.sol +336 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/distribution/IDistributionService.sol +101 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +33 -32
- package/contracts/instance/IInstance.sol +43 -72
- package/contracts/instance/IInstanceService.sol +57 -24
- package/contracts/instance/Instance.sol +160 -222
- package/contracts/instance/InstanceAdmin.sol +285 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +202 -65
- package/contracts/instance/InstanceService.sol +333 -342
- package/contracts/instance/InstanceServiceManager.sol +12 -26
- package/contracts/instance/InstanceStore.sol +287 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
- package/contracts/instance/module/IAccess.sol +19 -20
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/{ISetup.sol → IComponents.sol} +21 -22
- package/contracts/instance/module/IDistribution.sol +6 -4
- package/contracts/instance/module/IPolicy.sol +55 -18
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +167 -0
- package/contracts/oracle/OracleService.sol +279 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +438 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +134 -0
- package/contracts/pool/IPoolComponent.sol +58 -0
- package/contracts/pool/IPoolService.sol +160 -0
- package/contracts/pool/Pool.sol +326 -0
- package/contracts/pool/PoolService.sol +509 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +248 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +487 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +17 -36
- package/contracts/product/IClaimService.sol +122 -0
- package/contracts/product/IPolicyService.sol +73 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +39 -0
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +573 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +301 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +425 -0
- package/contracts/product/RiskService.sol +97 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +16 -1
- package/contracts/registry/IRegistry.sol +62 -27
- package/contracts/registry/IRegistryService.sol +44 -42
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +251 -139
- package/contracts/registry/RegistryAdmin.sol +374 -0
- package/contracts/registry/RegistryService.sol +70 -101
- package/contracts/registry/RegistryServiceManager.sol +23 -32
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +268 -0
- package/contracts/shared/ComponentService.sol +641 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/IComponent.sol +70 -0
- package/contracts/shared/IComponentService.sol +108 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +2 -2
- package/contracts/shared/IPolicyHolder.sol +29 -10
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +15 -6
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +172 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +6 -19
- package/contracts/shared/PolicyHolder.sol +41 -23
- package/contracts/shared/Registerable.sol +15 -14
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/Service.sol +47 -23
- package/contracts/shared/TokenHandler.sol +122 -10
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +160 -0
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +498 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +50 -0
- package/contracts/staking/StakingReader.sol +183 -0
- package/contracts/staking/StakingService.sol +407 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +135 -0
- package/contracts/{types → type}/Blocknumber.sol +27 -3
- package/contracts/{types → type}/ClaimId.sol +25 -2
- package/contracts/{types → type}/Fee.sol +33 -23
- package/contracts/{types → type}/NftId.sol +21 -15
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +275 -0
- package/contracts/{types → type}/PayoutId.sol +33 -5
- package/contracts/{types → type}/Referral.sol +6 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +174 -0
- package/contracts/type/Seconds.sol +101 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +35 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +34 -15
- package/contracts/{types → type}/UFixed.sol +35 -9
- package/contracts/{types → type}/Version.sol +5 -2
- package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
- package/package.json +8 -5
- 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/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -858
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1085
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -743
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -935
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -677
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -398
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -480
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -336
- 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 -1109
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -716
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -766
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- 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 -510
- 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/AddressSet.sol/LibAddressSet.json +0 -10
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
- 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/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- 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/Timestamp.sol/TimestampLib.json +0 -249
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
- package/contracts/components/Component.sol +0 -241
- package/contracts/components/IComponent.sol +0 -54
- package/contracts/components/IDistributionComponent.sol +0 -100
- package/contracts/components/IPoolComponent.sol +0 -87
- package/contracts/components/IProductComponent.sol +0 -39
- package/contracts/components/Pool.sol +0 -254
- package/contracts/components/Product.sol +0 -285
- package/contracts/instance/InstanceAccessManager.sol +0 -297
- package/contracts/instance/base/ComponentService.sol +0 -134
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/base/Lifecycle.sol +0 -100
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -268
- package/contracts/instance/service/BundleService.sol +0 -298
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -151
- package/contracts/instance/service/DistributionService.sol +0 -277
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -54
- package/contracts/instance/service/IClaimService.sol +0 -61
- package/contracts/instance/service/IDistributionService.sol +0 -65
- package/contracts/instance/service/IPolicyService.sol +0 -89
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -474
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -109
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -233
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/registry/ReleaseManager.sol +0 -322
- 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/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -156
- package/contracts/types/RoleId.sol +0 -90
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,138 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Distribution} from "./Distribution.sol";
|
5
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
6
|
+
import {NftId} from "../type/NftId.sol";
|
7
|
+
import {ReferralId} from "../type/Referral.sol";
|
8
|
+
import {Fee} from "../type/Fee.sol";
|
9
|
+
import {UFixed} from "../type/UFixed.sol";
|
10
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
11
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
12
|
+
|
13
|
+
|
14
|
+
contract BasicDistribution is
|
15
|
+
Distribution
|
16
|
+
{
|
17
|
+
|
18
|
+
function setFees(
|
19
|
+
Fee memory distributionFee,
|
20
|
+
Fee memory minDistributionOwnerFee
|
21
|
+
)
|
22
|
+
external
|
23
|
+
virtual
|
24
|
+
onlyOwner()
|
25
|
+
restricted()
|
26
|
+
{
|
27
|
+
_setFees(
|
28
|
+
distributionFee,
|
29
|
+
minDistributionOwnerFee);
|
30
|
+
}
|
31
|
+
|
32
|
+
|
33
|
+
function createDistributorType(
|
34
|
+
string memory name,
|
35
|
+
UFixed minDiscountPercentage,
|
36
|
+
UFixed maxDiscountPercentage,
|
37
|
+
UFixed commissionPercentage,
|
38
|
+
uint32 maxReferralCount,
|
39
|
+
uint32 maxReferralLifetime,
|
40
|
+
bool allowSelfReferrals,
|
41
|
+
bool allowRenewals,
|
42
|
+
bytes memory data
|
43
|
+
)
|
44
|
+
external
|
45
|
+
virtual
|
46
|
+
onlyOwner()
|
47
|
+
restricted()
|
48
|
+
returns (DistributorType distributorType)
|
49
|
+
{
|
50
|
+
return _createDistributorType(
|
51
|
+
name,
|
52
|
+
minDiscountPercentage,
|
53
|
+
maxDiscountPercentage,
|
54
|
+
commissionPercentage,
|
55
|
+
maxReferralCount,
|
56
|
+
maxReferralLifetime,
|
57
|
+
allowSelfReferrals,
|
58
|
+
allowRenewals,
|
59
|
+
data);
|
60
|
+
}
|
61
|
+
|
62
|
+
function createDistributor(
|
63
|
+
address distributor,
|
64
|
+
DistributorType distributorType,
|
65
|
+
bytes memory data
|
66
|
+
)
|
67
|
+
external
|
68
|
+
virtual
|
69
|
+
onlyOwner()
|
70
|
+
restricted()
|
71
|
+
returns(NftId distributorNftId)
|
72
|
+
{
|
73
|
+
return _createDistributor(distributor, distributorType, data);
|
74
|
+
}
|
75
|
+
|
76
|
+
function updateDistributorType(
|
77
|
+
NftId distributorNftId,
|
78
|
+
DistributorType distributorType,
|
79
|
+
bytes memory data
|
80
|
+
)
|
81
|
+
external
|
82
|
+
virtual
|
83
|
+
onlyOwner()
|
84
|
+
restricted()
|
85
|
+
{
|
86
|
+
_updateDistributorType(distributorNftId, distributorType, data);
|
87
|
+
}
|
88
|
+
|
89
|
+
/**
|
90
|
+
* @dev lets distributors create referral codes.
|
91
|
+
* referral codes need to be unique
|
92
|
+
*/
|
93
|
+
function createReferral(
|
94
|
+
string memory code,
|
95
|
+
UFixed discountPercentage,
|
96
|
+
uint32 maxReferrals,
|
97
|
+
Timestamp expiryAt,
|
98
|
+
bytes memory data
|
99
|
+
)
|
100
|
+
external
|
101
|
+
virtual
|
102
|
+
onlyDistributor()
|
103
|
+
restricted()
|
104
|
+
returns (ReferralId referralId)
|
105
|
+
{
|
106
|
+
NftId distributorNftId = getDistributorNftId(msg.sender);
|
107
|
+
return _createReferral(
|
108
|
+
distributorNftId,
|
109
|
+
code,
|
110
|
+
discountPercentage,
|
111
|
+
maxReferrals,
|
112
|
+
expiryAt,
|
113
|
+
data); // data
|
114
|
+
}
|
115
|
+
|
116
|
+
function _initializeBasicDistribution(
|
117
|
+
address registry,
|
118
|
+
NftId instanceNftId,
|
119
|
+
IAuthorization authorization,
|
120
|
+
address initialOwner,
|
121
|
+
string memory name,
|
122
|
+
address token
|
123
|
+
)
|
124
|
+
internal
|
125
|
+
virtual
|
126
|
+
onlyInitializing()
|
127
|
+
{
|
128
|
+
_initializeDistribution(
|
129
|
+
registry,
|
130
|
+
instanceNftId,
|
131
|
+
authorization,
|
132
|
+
initialOwner,
|
133
|
+
name,
|
134
|
+
token,
|
135
|
+
"", // registry data
|
136
|
+
""); // component specifc data
|
137
|
+
}
|
138
|
+
}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Authorization} from "../authorization/Authorization.sol";
|
5
|
+
import {BasicDistribution} from "./BasicDistribution.sol";
|
6
|
+
import {Distribution} from "./Distribution.sol";
|
7
|
+
import {DISTRIBUTION} from "../type/ObjectType.sol";
|
8
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
9
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
10
|
+
import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
|
11
|
+
|
12
|
+
|
13
|
+
contract BasicDistributionAuthorization
|
14
|
+
is Authorization
|
15
|
+
{
|
16
|
+
|
17
|
+
constructor(string memory distributionlName)
|
18
|
+
Authorization(distributionlName)
|
19
|
+
{}
|
20
|
+
|
21
|
+
function _setupTargets()
|
22
|
+
internal
|
23
|
+
virtual override
|
24
|
+
{
|
25
|
+
_addComponentTargetWithRole(DISTRIBUTION()); // basic target
|
26
|
+
}
|
27
|
+
|
28
|
+
|
29
|
+
function _setupTargetAuthorizations()
|
30
|
+
internal
|
31
|
+
virtual override
|
32
|
+
{
|
33
|
+
IAccess.FunctionInfo[] storage functions;
|
34
|
+
|
35
|
+
// authorize public role (open access to any account, only allows to lock target)
|
36
|
+
functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
|
37
|
+
_authorize(functions, BasicDistribution.setFees.selector, "setFees");
|
38
|
+
_authorize(functions, BasicDistribution.createDistributorType.selector, "createDistributorType");
|
39
|
+
_authorize(functions, BasicDistribution.createDistributor.selector, "createDistributor");
|
40
|
+
_authorize(functions, BasicDistribution.updateDistributorType.selector, "updateDistributorType");
|
41
|
+
_authorize(functions, BasicDistribution.createReferral.selector, "createReferral");
|
42
|
+
|
43
|
+
_authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
|
44
|
+
_authorize(functions, Distribution.withdrawCommission.selector, "withdrawCommission");
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
@@ -1,81 +1,187 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
3
|
-
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import {
|
10
|
-
import {
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {COMPONENT, DISTRIBUTION} from "../type/ObjectType.sol";
|
6
|
+
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
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
11
13
|
import {IDistributionComponent} from "./IDistributionComponent.sol";
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {Registerable} from "../shared/Registerable.sol";
|
16
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
17
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
18
|
-
import {UFixed} from "../types/UFixed.sol";
|
19
|
-
import {DistributorType} from "../types/DistributorType.sol";
|
20
|
-
import {Timestamp} from "../types/Timestamp.sol";
|
21
|
-
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
14
|
+
import {UFixed} from "../type/UFixed.sol";
|
15
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
16
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
22
17
|
|
23
18
|
|
24
19
|
abstract contract Distribution is
|
25
|
-
|
20
|
+
InstanceLinkedComponent,
|
26
21
|
IDistributionComponent
|
27
22
|
{
|
28
23
|
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.Distribution")) - 1)) & ~bytes32(uint256(0xff));
|
29
24
|
bytes32 public constant DISTRIBUTION_STORAGE_LOCATION_V1 = 0xaab7c5ea03d290056d6c060e0833d3ebcbe647f7694616a2ec52738a64b2f900;
|
30
25
|
|
31
26
|
struct DistributionStorage {
|
32
|
-
|
33
|
-
TokenHandler _tokenHandler;
|
27
|
+
IComponentService _componentService;
|
34
28
|
IDistributionService _distributionService;
|
35
29
|
mapping(address distributor => NftId distributorNftId) _distributorNftId;
|
36
30
|
}
|
37
31
|
|
38
|
-
|
32
|
+
modifier onlyDistributor() {
|
33
|
+
if (!isDistributor(msg.sender)) {
|
34
|
+
revert ErrorDistributionNotDistributor(msg.sender);
|
35
|
+
}
|
36
|
+
_;
|
37
|
+
}
|
38
|
+
|
39
|
+
function register()
|
40
|
+
external
|
41
|
+
virtual
|
42
|
+
onlyOwner()
|
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)
|
53
|
+
{
|
54
|
+
DistributionStorage storage $ = _getDistributionStorage();
|
55
|
+
return $._distributorNftId[candidate].gtz();
|
56
|
+
}
|
57
|
+
|
58
|
+
|
59
|
+
function getDistributorNftId(address distributor)
|
60
|
+
public
|
61
|
+
view
|
62
|
+
returns (NftId distributorNftId)
|
63
|
+
{
|
64
|
+
DistributionStorage storage $ = _getDistributionStorage();
|
65
|
+
return $._distributorNftId[distributor];
|
66
|
+
}
|
67
|
+
|
68
|
+
|
69
|
+
function getDiscountPercentage(string memory referralCode)
|
70
|
+
external
|
71
|
+
view
|
72
|
+
returns (
|
73
|
+
UFixed discountPercentage,
|
74
|
+
ReferralStatus status
|
75
|
+
)
|
76
|
+
{
|
77
|
+
ReferralId referralId = getReferralId(referralCode);
|
78
|
+
return _getInstanceReader().getDiscountPercentage(referralId);
|
79
|
+
}
|
80
|
+
|
81
|
+
|
82
|
+
function getReferralId(
|
83
|
+
string memory referralCode
|
84
|
+
)
|
85
|
+
public
|
86
|
+
view
|
87
|
+
returns (ReferralId referralId)
|
88
|
+
{
|
89
|
+
return ReferralLib.toReferralId(
|
90
|
+
getNftId(),
|
91
|
+
referralCode);
|
92
|
+
}
|
93
|
+
|
94
|
+
|
95
|
+
function calculateRenewalFeeAmount(
|
96
|
+
ReferralId referralId,
|
97
|
+
uint256 netPremiumAmount
|
98
|
+
)
|
99
|
+
external
|
100
|
+
view
|
101
|
+
virtual override
|
102
|
+
returns (uint256 feeAmount)
|
103
|
+
{
|
104
|
+
// default is no fees
|
105
|
+
return 0 * netPremiumAmount;
|
106
|
+
}
|
107
|
+
|
108
|
+
|
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
|
+
/// @dev Returns true iff the component needs to be called when selling/renewing policis
|
121
|
+
function isVerifying() external pure returns (bool verifying) {
|
122
|
+
return true;
|
123
|
+
}
|
124
|
+
|
125
|
+
/// @inheritdoc IDistributionComponent
|
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
|
+
|
137
|
+
function _initializeDistribution(
|
39
138
|
address registry,
|
40
139
|
NftId instanceNftId,
|
140
|
+
IAuthorization authorization,
|
141
|
+
address initialOwner,
|
41
142
|
string memory name,
|
42
143
|
address token,
|
43
|
-
|
44
|
-
|
45
|
-
bytes memory data
|
144
|
+
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
145
|
+
bytes memory componentData // component specifidc data
|
46
146
|
)
|
47
|
-
|
147
|
+
internal
|
48
148
|
virtual
|
49
149
|
onlyInitializing()
|
50
150
|
{
|
51
|
-
|
151
|
+
_initializeInstanceLinkedComponent(
|
152
|
+
registry,
|
153
|
+
instanceNftId,
|
154
|
+
name,
|
155
|
+
token,
|
156
|
+
DISTRIBUTION(),
|
157
|
+
authorization,
|
158
|
+
true,
|
159
|
+
initialOwner,
|
160
|
+
registryData,
|
161
|
+
componentData);
|
52
162
|
|
53
163
|
DistributionStorage storage $ = _getDistributionStorage();
|
54
|
-
|
55
|
-
$.
|
56
|
-
$._tokenHandler = new TokenHandler(token);
|
57
|
-
$._distributionService = getInstance().getDistributionService();
|
164
|
+
$._distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
165
|
+
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
58
166
|
|
59
167
|
registerInterface(type(IDistributionComponent).interfaceId);
|
60
168
|
}
|
61
169
|
|
62
|
-
|
63
|
-
|
170
|
+
/// @dev Sets the distribution fees to the provided values.
|
171
|
+
function _setFees(
|
172
|
+
Fee memory distributionFee,
|
173
|
+
Fee memory minDistributionOwnerFee
|
64
174
|
)
|
65
|
-
|
66
|
-
|
67
|
-
onlyOwner
|
68
|
-
restricted()
|
175
|
+
internal
|
176
|
+
virtual
|
69
177
|
{
|
70
|
-
_getDistributionStorage().
|
71
|
-
|
72
|
-
|
73
|
-
function getDistributionFee() external view returns (Fee memory distributionFee) {
|
74
|
-
DistributionStorage storage $ = _getDistributionStorage();
|
75
|
-
return $._distributionFee;
|
178
|
+
_getDistributionStorage()._componentService.setDistributionFees(
|
179
|
+
distributionFee,
|
180
|
+
minDistributionOwnerFee);
|
76
181
|
}
|
77
182
|
|
78
|
-
|
183
|
+
/// @dev Creates a new distributor type using the provided parameters.
|
184
|
+
function _createDistributorType(
|
79
185
|
string memory name,
|
80
186
|
UFixed minDiscountPercentage,
|
81
187
|
UFixed maxDiscountPercentage,
|
@@ -86,7 +192,8 @@ abstract contract Distribution is
|
|
86
192
|
bool allowRenewals,
|
87
193
|
bytes memory data
|
88
194
|
)
|
89
|
-
|
195
|
+
internal
|
196
|
+
virtual
|
90
197
|
returns (DistributorType distributorType)
|
91
198
|
{
|
92
199
|
DistributionStorage storage $ = _getDistributionStorage();
|
@@ -102,16 +209,20 @@ abstract contract Distribution is
|
|
102
209
|
data);
|
103
210
|
}
|
104
211
|
|
105
|
-
|
212
|
+
/// @dev Turns the provided account into a new distributor of the specified type.
|
213
|
+
function _createDistributor(
|
106
214
|
address distributor,
|
107
215
|
DistributorType distributorType,
|
108
216
|
bytes memory data
|
109
217
|
)
|
110
|
-
|
218
|
+
internal
|
219
|
+
virtual
|
111
220
|
returns(NftId distributorNftId)
|
112
221
|
{
|
113
222
|
DistributionStorage storage $ = _getDistributionStorage();
|
114
|
-
|
223
|
+
if($._distributorNftId[distributor].gtz()) {
|
224
|
+
revert ErrorDistributionAlreadyDistributor(distributor, $._distributorNftId[distributor]);
|
225
|
+
}
|
115
226
|
|
116
227
|
distributorNftId = $._distributionService.createDistributor(
|
117
228
|
distributor,
|
@@ -121,27 +232,25 @@ abstract contract Distribution is
|
|
121
232
|
$._distributorNftId[distributor] = distributorNftId;
|
122
233
|
}
|
123
234
|
|
124
|
-
|
235
|
+
/// @dev Uptates the distributor type for the specified distributor.
|
236
|
+
function _updateDistributorType(
|
125
237
|
NftId distributorNftId,
|
126
238
|
DistributorType distributorType,
|
127
239
|
bytes memory data
|
128
240
|
)
|
129
|
-
|
130
|
-
|
131
|
-
// and add it
|
241
|
+
internal
|
242
|
+
virtual
|
132
243
|
{
|
133
244
|
DistributionStorage storage $ = _getDistributionStorage();
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
245
|
+
// TODO re-enable once implemented
|
246
|
+
// $._distributionService.updateDistributorType(
|
247
|
+
// distributorNftId,
|
248
|
+
// distributorType,
|
249
|
+
// data);
|
138
250
|
}
|
139
251
|
|
140
|
-
|
141
|
-
|
142
|
-
* referral codes need to be unique
|
143
|
-
*/
|
144
|
-
function createReferral(
|
252
|
+
/// @dev Create a new referral code for the provided distributor.
|
253
|
+
function _createReferral(
|
145
254
|
NftId distributorNftId,
|
146
255
|
string memory code,
|
147
256
|
UFixed discountPercentage,
|
@@ -149,8 +258,8 @@ abstract contract Distribution is
|
|
149
258
|
Timestamp expiryAt,
|
150
259
|
bytes memory data
|
151
260
|
)
|
152
|
-
|
153
|
-
|
261
|
+
internal
|
262
|
+
virtual
|
154
263
|
returns (ReferralId referralId)
|
155
264
|
{
|
156
265
|
DistributionStorage storage $ = _getDistributionStorage();
|
@@ -163,141 +272,19 @@ abstract contract Distribution is
|
|
163
272
|
data);
|
164
273
|
}
|
165
274
|
|
166
|
-
function
|
167
|
-
|
168
|
-
|
169
|
-
)
|
170
|
-
external
|
171
|
-
view
|
172
|
-
virtual override
|
173
|
-
returns (uint256 feeAmount)
|
174
|
-
{
|
175
|
-
ISetup.DistributionSetupInfo memory setupInfo = getSetupInfo();
|
176
|
-
Fee memory fee = setupInfo.distributionFee;
|
177
|
-
(feeAmount,) = FeeLib.calculateFee(fee, netPremiumAmount);
|
178
|
-
// TODO: use this?
|
179
|
-
// return _distributionService.calculateFeeAmount(referralId, premiumAmount);
|
180
|
-
}
|
181
|
-
|
182
|
-
function isDistributor(address candidate)
|
183
|
-
public
|
184
|
-
view
|
185
|
-
returns (bool)
|
186
|
-
{
|
187
|
-
DistributionStorage storage $ = _getDistributionStorage();
|
188
|
-
return $._distributorNftId[candidate].gtz();
|
189
|
-
}
|
190
|
-
|
191
|
-
function getDistributorNftId(address distributor)
|
192
|
-
public
|
193
|
-
view
|
194
|
-
returns (NftId distributorNftId)
|
195
|
-
{
|
196
|
-
DistributionStorage storage $ = _getDistributionStorage();
|
197
|
-
return $._distributorNftId[distributor];
|
198
|
-
}
|
199
|
-
|
200
|
-
function getDiscountPercentage(string memory referralCode)
|
201
|
-
external
|
202
|
-
view
|
203
|
-
returns (
|
204
|
-
UFixed discountPercentage,
|
205
|
-
ReferralStatus status
|
206
|
-
)
|
207
|
-
{
|
208
|
-
ReferralId referralId = getReferralId(referralCode);
|
209
|
-
return getInstanceReader().getDiscountPercentage(referralId);
|
210
|
-
}
|
211
|
-
|
212
|
-
|
213
|
-
function getReferralId(
|
214
|
-
string memory referralCode
|
215
|
-
)
|
216
|
-
public
|
217
|
-
view
|
218
|
-
returns (ReferralId referralId)
|
219
|
-
{
|
220
|
-
return ReferralLib.toReferralId(
|
221
|
-
getNftId(),
|
222
|
-
referralCode);
|
223
|
-
}
|
224
|
-
|
225
|
-
function calculateRenewalFeeAmount(
|
226
|
-
ReferralId referralId,
|
227
|
-
uint256 netPremiumAmount
|
228
|
-
)
|
229
|
-
external
|
230
|
-
view
|
231
|
-
virtual override
|
232
|
-
returns (uint256 feeAmount)
|
275
|
+
function _withdrawCommission(NftId distributorNftId, Amount amount)
|
276
|
+
internal
|
277
|
+
returns (Amount withdrawnAmount)
|
233
278
|
{
|
234
|
-
|
235
|
-
return 0 * netPremiumAmount;
|
279
|
+
return _getDistributionStorage()._distributionService.withdrawCommission(distributorNftId, amount);
|
236
280
|
}
|
237
281
|
|
238
|
-
function
|
239
|
-
ReferralId referralId,
|
240
|
-
uint256 premiumAmount
|
241
|
-
)
|
242
|
-
external
|
243
|
-
onlyOwner
|
244
|
-
restricted()
|
245
|
-
virtual override
|
246
|
-
{
|
247
|
-
DistributionStorage storage $ = _getDistributionStorage();
|
248
|
-
$._distributionService.processSale(referralId, premiumAmount);
|
249
|
-
}
|
250
|
-
|
251
|
-
function processRenewal(
|
252
|
-
ReferralId referralId,
|
253
|
-
uint256 feeAmount
|
254
|
-
)
|
255
|
-
external
|
256
|
-
onlyOwner
|
257
|
-
restricted()
|
258
|
-
virtual override
|
259
|
-
{
|
260
|
-
// default is no action
|
261
|
-
}
|
262
|
-
|
263
|
-
function referralIsValid(ReferralId referralId) external view returns (bool isValid) {
|
264
|
-
// default is invalid
|
265
|
-
return false;
|
266
|
-
}
|
267
|
-
|
268
|
-
function getSetupInfo() public view returns (ISetup.DistributionSetupInfo memory setupInfo) {
|
269
|
-
InstanceReader reader = getInstance().getInstanceReader();
|
270
|
-
setupInfo = reader.getDistributionSetupInfo(getNftId());
|
271
|
-
|
272
|
-
// fallback to initial setup info (wallet is always != address(0))
|
273
|
-
if(setupInfo.wallet == address(0)) {
|
274
|
-
setupInfo = _getInitialSetupInfo();
|
275
|
-
}
|
276
|
-
}
|
277
|
-
|
278
|
-
function _getInitialSetupInfo() internal view returns (ISetup.DistributionSetupInfo memory setupInfo) {
|
279
|
-
DistributionStorage storage $ = _getDistributionStorage();
|
280
|
-
return ISetup.DistributionSetupInfo(
|
281
|
-
zeroNftId(),
|
282
|
-
$._tokenHandler,
|
283
|
-
$._distributionFee,
|
284
|
-
address(this)
|
285
|
-
);
|
286
|
-
}
|
287
|
-
|
288
|
-
|
289
|
-
function nftTransferFrom(address from, address to, uint256 tokenId) external virtual override (Component, ITransferInterceptor) {
|
282
|
+
function _nftTransferFrom(address from, address to, uint256 tokenId) internal virtual override {
|
290
283
|
// keep track of distributor nft owner
|
291
284
|
emit LogDistributorUpdated(to, msg.sender);
|
292
285
|
DistributionStorage storage $ = _getDistributionStorage();
|
293
|
-
$._distributorNftId[from] =
|
294
|
-
$._distributorNftId[to] = toNftId(tokenId);
|
295
|
-
}
|
296
|
-
|
297
|
-
|
298
|
-
/// @dev returns true iff the component needs to be called when selling/renewing policis
|
299
|
-
function isVerifying() external view returns (bool verifying) {
|
300
|
-
return true;
|
286
|
+
$._distributorNftId[from] = NftIdLib.zero();
|
287
|
+
$._distributorNftId[to] = NftIdLib.toNftId(tokenId);
|
301
288
|
}
|
302
289
|
|
303
290
|
function _getDistributionStorage() private pure returns (DistributionStorage storage $) {
|