@etherisc/gif-next 0.0.2-ffa91a6-022 → 3.0.0-04e2e0d-531
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 +131 -332
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +111 -57
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +107 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +65 -19
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +370 -141
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1582 -202
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +25 -6
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +266 -64
- 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 +263 -87
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +102 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -38
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +269 -69
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -12
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +463 -149
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +160 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -11
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +317 -19
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +108 -79
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +268 -68
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +136 -95
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +268 -68
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1353 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2289 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +86 -45
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +268 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +35 -26
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -105
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +268 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -147
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +268 -68
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +84 -212
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/KeyValueStore.sol/KeyValueStore.json → instance/IBaseStore.sol/IBaseStore.json} +61 -245
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +374 -35
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +366 -5
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +425 -97
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +753 -401
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +236 -80
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +782 -553
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +392 -31
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1374 -2013
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3477 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- 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 +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
- 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 +25 -16
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +282 -65
- 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 +19 -10
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -10
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -58
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +268 -68
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +312 -123
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +198 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -20
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +250 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -20
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +350 -79
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +216 -59
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -37
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +268 -68
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -70
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +67 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -31
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +169 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +519 -21
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +138 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +93 -112
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +115 -65
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -31
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -43
- 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 +39 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +77 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +539 -314
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +335 -76
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +96 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +551 -246
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +169 -111
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -10
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +221 -201
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +130 -64
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/{ComponentVerifyingService.sol/ComponentVerifyingService.json → IAuthorizedComponent.sol/IAuthorizedComponent.json} +238 -90
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -10
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +136 -132
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -10
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -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 +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -10
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -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 +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
- 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 +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1415 -134
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +109 -117
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1504 -192
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +77 -76
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +139 -64
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +296 -152
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +143 -167
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1615 -815
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +153 -91
- 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 +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- 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 +93 -37
- 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 +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- 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 +22 -25
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
- 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/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
- 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/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +31 -31
- package/contracts/accounting/IAccountingService.sol +9 -8
- package/contracts/authorization/AccessAdmin.sol +281 -325
- package/contracts/authorization/AccessAdminLib.sol +535 -23
- package/contracts/authorization/AccessManagerCloneable.sol +3 -18
- package/contracts/authorization/Authorization.sol +64 -239
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +25 -53
- package/contracts/authorization/IAuthorization.sol +3 -57
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +3 -4
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +9 -8
- package/contracts/distribution/DistributionService.sol +127 -62
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +21 -8
- package/contracts/examples/fire/FireProduct.sol +6 -6
- package/contracts/examples/flight/FlightLib.sol +337 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +226 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +687 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
- package/contracts/examples/flight/FlightProductManager.sol +49 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
- package/contracts/instance/BaseStore.sol +97 -0
- package/contracts/instance/IBaseStore.sol +45 -0
- package/contracts/instance/IInstance.sol +57 -6
- package/contracts/instance/IInstanceService.sol +44 -7
- package/contracts/instance/Instance.sol +111 -56
- package/contracts/instance/InstanceAdmin.sol +150 -294
- package/contracts/instance/InstanceAuthorizationV3.sol +106 -66
- package/contracts/instance/InstanceReader.sol +384 -394
- package/contracts/instance/InstanceService.sol +190 -134
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +15 -5
- package/contracts/instance/module/IDistribution.sol +17 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +3 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleService.sol +12 -12
- package/contracts/oracle/Oracle.sol +6 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -16
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +8 -3
- package/contracts/pool/Pool.sol +6 -18
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -182
- package/contracts/product/ApplicationService.sol +64 -11
- package/contracts/product/BasicProduct.sol +2 -3
- package/contracts/product/BasicProductAuthorization.sol +13 -5
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +21 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +10 -3
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +41 -60
- package/contracts/product/PolicyServiceLib.sol +83 -7
- package/contracts/product/PricingService.sol +28 -31
- package/contracts/product/Product.sol +40 -16
- package/contracts/product/RiskService.sol +50 -15
- package/contracts/registry/ChainNft.sol +1 -1
- package/contracts/registry/IRegistry.sol +15 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +39 -118
- package/contracts/registry/RegistryAuthorization.sol +139 -69
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +59 -106
- package/contracts/registry/ReleaseRegistry.sol +20 -12
- package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +8 -8
- package/contracts/shared/ComponentService.sol +250 -262
- package/contracts/shared/ContractLib.sol +106 -75
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +1 -1
- package/contracts/shared/IComponentService.sol +15 -15
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InstanceLinkedComponent.sol +64 -26
- package/contracts/shared/NftOwnable.sol +3 -1
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Service.sol +6 -4
- package/contracts/staking/IStaking.sol +263 -70
- package/contracts/staking/IStakingService.sol +40 -85
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +469 -217
- package/contracts/staking/StakingLib.sol +38 -124
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +62 -71
- package/contracts/staking/StakingService.sol +43 -186
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -331
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +17 -33
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +23 -0
- package/contracts/type/String.sol +42 -0
- package/contracts/type/Timestamp.sol +14 -3
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -13,21 +13,24 @@ import {IComponents} from "../instance/module/IComponents.sol";
|
|
13
13
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
14
14
|
|
15
15
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
16
|
-
import {
|
16
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
17
17
|
import {DistributorType, DistributorTypeLib} from "../type/DistributorType.sol";
|
18
18
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
19
19
|
import {KEEP_STATE} from "../type/StateId.sol";
|
20
20
|
import {ObjectType, ACCOUNTING, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
|
21
21
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
22
22
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
23
|
-
|
23
|
+
// TODO PoolLib feels wrong, should likely go in a component type independent lib
|
24
|
+
import {PoolLib} from "../pool/PoolLib.sol";
|
25
|
+
import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
|
24
26
|
import {Seconds} from "../type/Seconds.sol";
|
27
|
+
import {Service} from "../shared/Service.sol";
|
25
28
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
26
|
-
import {UFixed} from "../type/UFixed.sol";
|
29
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
27
30
|
|
28
31
|
|
29
32
|
contract DistributionService is
|
30
|
-
|
33
|
+
Service,
|
31
34
|
IDistributionService
|
32
35
|
{
|
33
36
|
IAccountingService private _accountingService;
|
@@ -71,12 +74,14 @@ contract DistributionService is
|
|
71
74
|
bytes memory data
|
72
75
|
)
|
73
76
|
external
|
77
|
+
virtual
|
78
|
+
restricted()
|
74
79
|
returns (DistributorType distributorType)
|
75
80
|
{
|
76
|
-
(NftId distributionNftId
|
81
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
77
82
|
|
78
83
|
{
|
79
|
-
NftId productNftId =
|
84
|
+
NftId productNftId = getRegistry().getParentNftId(distributionNftId);
|
80
85
|
IComponents.FeeInfo memory feeInfo = instance.getInstanceReader().getFeeInfo(productNftId);
|
81
86
|
|
82
87
|
UFixed variableDistributionFees = feeInfo.distributionFee.fractionalFee;
|
@@ -87,25 +92,27 @@ contract DistributionService is
|
|
87
92
|
}
|
88
93
|
UFixed maxDiscountPercentageLimit = variableDistributionFees - variableFeesPartsTotal;
|
89
94
|
|
90
|
-
if (maxDiscountPercentage
|
95
|
+
if (maxDiscountPercentage > maxDiscountPercentageLimit) {
|
91
96
|
revert ErrorDistributionServiceMaxDiscountTooHigh(maxDiscountPercentage.toInt1000(), maxDiscountPercentageLimit.toInt1000());
|
92
97
|
}
|
93
98
|
}
|
94
99
|
|
95
100
|
distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
|
96
|
-
IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
|
97
|
-
name,
|
98
|
-
distributionNftId,
|
99
|
-
minDiscountPercentage,
|
100
|
-
maxDiscountPercentage,
|
101
|
-
commissionPercentage,
|
102
|
-
maxReferralCount,
|
103
|
-
maxReferralLifetime,
|
104
|
-
allowSelfReferrals,
|
105
|
-
allowRenewals,
|
106
|
-
data);
|
101
|
+
IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo({
|
102
|
+
name: name,
|
103
|
+
distributionNftId: distributionNftId,
|
104
|
+
minDiscountPercentage: minDiscountPercentage,
|
105
|
+
maxDiscountPercentage: maxDiscountPercentage,
|
106
|
+
commissionPercentage: commissionPercentage,
|
107
|
+
maxReferralCount: maxReferralCount,
|
108
|
+
maxReferralLifetime: maxReferralLifetime,
|
109
|
+
allowSelfReferrals: allowSelfReferrals,
|
110
|
+
allowRenewals: allowRenewals,
|
111
|
+
data: data});
|
107
112
|
|
108
113
|
instance.getInstanceStore().createDistributorType(distributorType, info);
|
114
|
+
|
115
|
+
emit LogDistributionServiceDistributorTypeCreated(distributionNftId, name, commissionPercentage);
|
109
116
|
}
|
110
117
|
|
111
118
|
|
@@ -116,9 +123,10 @@ contract DistributionService is
|
|
116
123
|
)
|
117
124
|
external
|
118
125
|
virtual
|
126
|
+
restricted()
|
119
127
|
returns (NftId distributorNftId)
|
120
128
|
{
|
121
|
-
(NftId distributionNftId
|
129
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
122
130
|
_checkDistributionType(instance.getInstanceReader(), distributorType, distributionNftId);
|
123
131
|
|
124
132
|
distributorNftId = _registryService.registerDistributor(
|
@@ -132,13 +140,15 @@ contract DistributionService is
|
|
132
140
|
""
|
133
141
|
));
|
134
142
|
|
135
|
-
IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo(
|
136
|
-
distributorType,
|
137
|
-
true,
|
138
|
-
|
139
|
-
|
143
|
+
IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo({
|
144
|
+
distributorType: distributorType,
|
145
|
+
active: true,
|
146
|
+
numPoliciesSold: 0,
|
147
|
+
data: data});
|
140
148
|
|
141
149
|
instance.getInstanceStore().createDistributor(distributorNftId, info);
|
150
|
+
|
151
|
+
emit LogDistributionServiceDistributorCreated(distributionNftId, distributorNftId, distributorType, distributor);
|
142
152
|
}
|
143
153
|
|
144
154
|
function changeDistributorType(
|
@@ -148,15 +158,19 @@ contract DistributionService is
|
|
148
158
|
)
|
149
159
|
external
|
150
160
|
virtual
|
161
|
+
restricted()
|
151
162
|
{
|
152
163
|
_checkNftType(distributorNftId, DISTRIBUTOR());
|
153
|
-
(NftId distributionNftId
|
164
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
154
165
|
_checkDistributionType(instance.getInstanceReader(), newDistributorType, distributionNftId);
|
155
166
|
|
156
167
|
IDistribution.DistributorInfo memory distributorInfo = instance.getInstanceReader().getDistributorInfo(distributorNftId);
|
168
|
+
DistributorType oldDistributorType = distributorInfo.distributorType;
|
157
169
|
distributorInfo.distributorType = newDistributorType;
|
158
170
|
distributorInfo.data = data;
|
159
171
|
instance.getInstanceStore().updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
|
172
|
+
|
173
|
+
emit LogDistributionServiceDistributorTypeChanged(distributorNftId, oldDistributorType, newDistributorType);
|
160
174
|
}
|
161
175
|
|
162
176
|
|
@@ -170,15 +184,16 @@ contract DistributionService is
|
|
170
184
|
)
|
171
185
|
external
|
172
186
|
virtual
|
187
|
+
restricted()
|
173
188
|
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
174
189
|
returns (ReferralId referralId)
|
175
190
|
{
|
176
|
-
(NftId distributionNftId
|
191
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
177
192
|
|
178
193
|
if (bytes(code).length == 0) {
|
179
|
-
revert ErrorDistributionServiceInvalidReferral(
|
194
|
+
revert ErrorDistributionServiceInvalidReferral();
|
180
195
|
}
|
181
|
-
if (expiryAt.eqz() || expiryAt
|
196
|
+
if (expiryAt.eqz() || expiryAt < TimestampLib.current()) {
|
182
197
|
revert ErrorDistributionServiceExpirationInvalid(expiryAt);
|
183
198
|
}
|
184
199
|
|
@@ -193,33 +208,35 @@ contract DistributionService is
|
|
193
208
|
IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
|
194
209
|
|
195
210
|
if (distributorTypeData.maxReferralCount < maxReferrals) {
|
196
|
-
revert ErrorDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
|
211
|
+
revert ErrorDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount, maxReferrals);
|
197
212
|
}
|
198
213
|
if (distributorTypeData.minDiscountPercentage > discountPercentage) {
|
199
|
-
revert ErrorDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage
|
214
|
+
revert ErrorDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage, discountPercentage);
|
200
215
|
}
|
201
216
|
if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
|
202
|
-
revert ErrorDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage
|
217
|
+
revert ErrorDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage, discountPercentage);
|
203
218
|
}
|
204
|
-
if (expiryAt.toInt() - TimestampLib.
|
219
|
+
if (expiryAt.toInt() - TimestampLib.current().toInt() > distributorTypeData.maxReferralLifetime.toInt()) {
|
205
220
|
revert ErrorDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt);
|
206
221
|
}
|
207
222
|
}
|
208
223
|
|
209
224
|
{
|
210
225
|
referralId = ReferralLib.toReferralId(distributionNftId, code);
|
211
|
-
IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo(
|
212
|
-
distributionNftId,
|
213
|
-
distributorNftId,
|
214
|
-
code,
|
215
|
-
discountPercentage,
|
216
|
-
maxReferrals,
|
217
|
-
0,
|
218
|
-
expiryAt,
|
219
|
-
data
|
220
|
-
);
|
226
|
+
IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo({
|
227
|
+
distributionNftId: distributionNftId,
|
228
|
+
distributorNftId: distributorNftId,
|
229
|
+
referralCode: code,
|
230
|
+
discountPercentage: discountPercentage,
|
231
|
+
maxReferrals: maxReferrals,
|
232
|
+
usedReferrals: 0,
|
233
|
+
expiryAt: expiryAt,
|
234
|
+
data: data
|
235
|
+
});
|
221
236
|
|
222
237
|
instance.getInstanceStore().createReferral(referralId, info);
|
238
|
+
|
239
|
+
emit LogDistributionServiceReferralCreated(distributionNftId, distributorNftId, referralId, code, discountPercentage, maxReferrals, expiryAt);
|
223
240
|
}
|
224
241
|
}
|
225
242
|
|
@@ -234,14 +251,14 @@ contract DistributionService is
|
|
234
251
|
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
235
252
|
{
|
236
253
|
if (referralIsValid(distributionNftId, referralId)) {
|
237
|
-
|
238
|
-
IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
|
239
|
-
IInstance instance = _getInstanceForComponent(registry, distributionInfo.parentNftId);
|
254
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(getRegistry(), distributionNftId));
|
240
255
|
|
241
256
|
// update book keeping for referral info
|
242
257
|
IDistribution.ReferralInfo memory referralInfo = instance.getInstanceReader().getReferralInfo(referralId);
|
243
258
|
referralInfo.usedReferrals += 1;
|
244
259
|
instance.getInstanceStore().updateReferral(referralId, referralInfo, KEEP_STATE());
|
260
|
+
|
261
|
+
emit LogDistributionServiceReferralProcessed(distributionNftId, referralInfo.distributorNftId, referralId, referralInfo.usedReferrals);
|
245
262
|
}
|
246
263
|
}
|
247
264
|
|
@@ -255,9 +272,7 @@ contract DistributionService is
|
|
255
272
|
restricted()
|
256
273
|
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
257
274
|
{
|
258
|
-
|
259
|
-
IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
|
260
|
-
IInstance instance = _getInstanceForComponent(registry, distributionInfo.parentNftId);
|
275
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(getRegistry(), distributionNftId));
|
261
276
|
InstanceReader reader = instance.getInstanceReader();
|
262
277
|
InstanceStore store = instance.getInstanceStore();
|
263
278
|
|
@@ -280,34 +295,38 @@ contract DistributionService is
|
|
280
295
|
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
281
296
|
distributorInfo.numPoliciesSold += 1;
|
282
297
|
store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
|
298
|
+
emit LogDistributionServiceSaleProcessedWithReferral(distributionNftId, referralInfo.distributorNftId, referralId, distributorInfo.numPoliciesSold, premium.premiumAmount, distributionOwnerFee, commissionAmount);
|
283
299
|
} else {
|
284
300
|
// increase distribution balance by distribution owner fee
|
285
301
|
_accountingService.increaseDistributionBalance(store, distributionNftId, AmountLib.zero(), distributionOwnerFee);
|
302
|
+
emit LogDistributionServiceSaleProcessed(distributionNftId, referralId, premium.premiumAmount, distributionOwnerFee);
|
286
303
|
}
|
304
|
+
|
305
|
+
|
287
306
|
}
|
288
307
|
|
289
308
|
/// @inheritdoc IDistributionService
|
290
309
|
function withdrawCommission(NftId distributorNftId, Amount amount)
|
291
310
|
public
|
292
311
|
virtual
|
293
|
-
|
312
|
+
restricted()
|
294
313
|
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
295
314
|
returns (Amount withdrawnAmount)
|
296
315
|
{
|
297
|
-
(NftId distributionNftId
|
316
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
298
317
|
InstanceReader reader = instance.getInstanceReader();
|
299
318
|
|
300
319
|
IComponents.ComponentInfo memory distributionInfo = reader.getComponentInfo(distributionNftId);
|
301
|
-
address distributionWallet = distributionInfo.tokenHandler.getWallet();
|
320
|
+
// address distributionWallet = distributionInfo.tokenHandler.getWallet();
|
302
321
|
|
303
322
|
Amount commissionAmount = reader.getFeeAmount(distributorNftId);
|
304
323
|
|
305
324
|
// determine withdrawn amount
|
306
325
|
withdrawnAmount = amount;
|
307
|
-
if (withdrawnAmount
|
326
|
+
if (withdrawnAmount >= AmountLib.max()) {
|
308
327
|
withdrawnAmount = commissionAmount;
|
309
328
|
} else {
|
310
|
-
if (withdrawnAmount
|
329
|
+
if (withdrawnAmount > commissionAmount) {
|
311
330
|
revert ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(withdrawnAmount, commissionAmount);
|
312
331
|
}
|
313
332
|
}
|
@@ -331,6 +350,7 @@ contract DistributionService is
|
|
331
350
|
|
332
351
|
function referralIsValid(NftId distributionNftId, ReferralId referralId)
|
333
352
|
public
|
353
|
+
virtual
|
334
354
|
view
|
335
355
|
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
336
356
|
returns (bool isValid)
|
@@ -339,9 +359,7 @@ contract DistributionService is
|
|
339
359
|
return false;
|
340
360
|
}
|
341
361
|
|
342
|
-
|
343
|
-
IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
|
344
|
-
IInstance instance = _getInstanceForComponent(registry, distributionInfo.parentNftId);
|
362
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(getRegistry(), distributionNftId));
|
345
363
|
IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
|
346
364
|
|
347
365
|
if (info.distributorNftId.eqz()) {
|
@@ -353,10 +371,52 @@ contract DistributionService is
|
|
353
371
|
revert ErrorDistributionServiceReferralDistributionMismatch(referralId, info.distributionNftId, distributionNftId);
|
354
372
|
}
|
355
373
|
|
356
|
-
isValid = info.expiryAt.eqz() || (info.expiryAt.gtz() && TimestampLib.
|
374
|
+
isValid = info.expiryAt.eqz() || (info.expiryAt.gtz() && TimestampLib.current() <= info.expiryAt);
|
357
375
|
isValid = isValid && info.usedReferrals < info.maxReferrals;
|
358
376
|
}
|
359
377
|
|
378
|
+
|
379
|
+
function getDiscountPercentage(
|
380
|
+
InstanceReader instanceReader,
|
381
|
+
ReferralId referralId
|
382
|
+
)
|
383
|
+
external
|
384
|
+
virtual
|
385
|
+
view
|
386
|
+
returns (
|
387
|
+
UFixed discountPercentage,
|
388
|
+
ReferralStatus status
|
389
|
+
)
|
390
|
+
{
|
391
|
+
IDistribution.ReferralInfo memory info = instanceReader.getReferralInfo(
|
392
|
+
referralId);
|
393
|
+
|
394
|
+
if (info.expiryAt.eqz()) {
|
395
|
+
return (
|
396
|
+
UFixedLib.zero(),
|
397
|
+
REFERRAL_ERROR_UNKNOWN());
|
398
|
+
}
|
399
|
+
|
400
|
+
if (info.expiryAt < TimestampLib.current()) {
|
401
|
+
return (
|
402
|
+
UFixedLib.zero(),
|
403
|
+
REFERRAL_ERROR_EXPIRED());
|
404
|
+
}
|
405
|
+
|
406
|
+
if (info.usedReferrals >= info.maxReferrals) {
|
407
|
+
return (
|
408
|
+
UFixedLib.zero(),
|
409
|
+
REFERRAL_ERROR_EXHAUSTED());
|
410
|
+
}
|
411
|
+
|
412
|
+
return (
|
413
|
+
info.discountPercentage,
|
414
|
+
REFERRAL_OK()
|
415
|
+
);
|
416
|
+
|
417
|
+
}
|
418
|
+
|
419
|
+
|
360
420
|
function _checkDistributionType(InstanceReader instanceReader, DistributorType distributorType, NftId expectedDistributionNftId)
|
361
421
|
internal
|
362
422
|
view
|
@@ -369,16 +429,21 @@ contract DistributionService is
|
|
369
429
|
}
|
370
430
|
}
|
371
431
|
|
372
|
-
|
432
|
+
|
433
|
+
|
434
|
+
function _getAndVerifyActiveDistribution()
|
373
435
|
internal
|
436
|
+
virtual
|
374
437
|
view
|
375
|
-
returns(
|
438
|
+
returns (
|
439
|
+
NftId poolNftId,
|
440
|
+
IInstance instance
|
441
|
+
)
|
376
442
|
{
|
377
|
-
|
378
|
-
address instanceAddress = getRegistry().getObjectAddress(instanceNftId);
|
379
|
-
return IInstance(instanceAddress);
|
443
|
+
return PoolLib.getAndVerifyActiveComponent(getRegistry(), msg.sender, DISTRIBUTION());
|
380
444
|
}
|
381
445
|
|
446
|
+
|
382
447
|
function _getDomain() internal pure override returns(ObjectType) {
|
383
448
|
return DISTRIBUTION();
|
384
449
|
}
|
@@ -1,12 +1,14 @@
|
|
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
4
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
5
|
+
|
6
|
+
import {Amount} from "../type/Amount.sol";
|
6
7
|
import {NftId} from "../type/NftId.sol";
|
7
8
|
import {ReferralId, ReferralStatus} from "../type/Referral.sol";
|
8
9
|
import {UFixed} from "../type/UFixed.sol";
|
9
10
|
|
11
|
+
|
10
12
|
interface IDistributionComponent is IInstanceLinkedComponent {
|
11
13
|
|
12
14
|
event LogDistributorUpdated(address to, address operator);
|
@@ -1,15 +1,17 @@
|
|
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 {NftId} from "../type/NftId.sol";
|
6
4
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
7
5
|
import {IService} from "../shared/IService.sol";
|
8
|
-
|
6
|
+
|
7
|
+
import {Amount} from "../type/Amount.sol";
|
9
8
|
import {DistributorType} from "../type/DistributorType.sol";
|
10
|
-
import {
|
9
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
10
|
+
import {NftId} from "../type/NftId.sol";
|
11
|
+
import {ReferralId, ReferralStatus} from "../type/Referral.sol";
|
11
12
|
import {Seconds} from "../type/Seconds.sol";
|
12
13
|
import {Timestamp} from "../type/Timestamp.sol";
|
14
|
+
import {UFixed} from "../type/UFixed.sol";
|
13
15
|
|
14
16
|
|
15
17
|
interface IDistributionService is IService {
|
@@ -17,11 +19,11 @@ interface IDistributionService is IService {
|
|
17
19
|
error ErrorDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
|
18
20
|
error ErrorDistributionServiceCallerNotDistributor(address caller);
|
19
21
|
error ErrorDistributionServiceInvalidReferralId(ReferralId referralId);
|
20
|
-
error ErrorDistributionServiceMaxReferralsExceeded(uint256 maxReferrals);
|
21
|
-
error ErrorDistributionServiceDiscountTooLow(
|
22
|
-
error ErrorDistributionServiceDiscountTooHigh(
|
22
|
+
error ErrorDistributionServiceMaxReferralsExceeded(uint256 limit, uint256 maxReferrals);
|
23
|
+
error ErrorDistributionServiceDiscountTooLow(UFixed minDiscountPercentage, UFixed discountPercentage);
|
24
|
+
error ErrorDistributionServiceDiscountTooHigh(UFixed maxDiscountPercentage, UFixed discountPercentage);
|
23
25
|
error ErrorDistributionServiceExpiryTooLong(Seconds maxReferralLifetime, Timestamp expiryAt);
|
24
|
-
error ErrorDistributionServiceInvalidReferral(
|
26
|
+
error ErrorDistributionServiceInvalidReferral();
|
25
27
|
error ErrorDistributionServiceExpirationInvalid(Timestamp expiryAt);
|
26
28
|
error ErrorDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
|
27
29
|
error ErrorDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
|
@@ -38,6 +40,13 @@ interface IDistributionService is IService {
|
|
38
40
|
error ErrorDistributionServiceReferralDistributionMismatch(ReferralId referralId, NftId referralDistributionNft, NftId distributionNftId);
|
39
41
|
|
40
42
|
event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient, address tokenAddress, Amount amount);
|
43
|
+
event LogDistributionServiceDistributorTypeCreated(NftId distributionNftId, string name, UFixed commissionPercentage);
|
44
|
+
event LogDistributionServiceDistributorCreated(NftId distributionNftId, NftId distributorNftId, DistributorType distributorType, address distributor);
|
45
|
+
event LogDistributionServiceDistributorTypeChanged(NftId distributorNftId, DistributorType oldDistributorType, DistributorType newDistributorType);
|
46
|
+
event LogDistributionServiceReferralCreated(NftId distributionNftId, NftId distributorNftId, ReferralId referralId, string code, UFixed discountPercentage, uint32 maxReferrals, Timestamp expiryAt);
|
47
|
+
event LogDistributionServiceReferralProcessed(NftId distributionNftId, NftId distributorNftId, ReferralId referralId, uint32 usedReferrals);
|
48
|
+
event LogDistributionServiceSaleProcessed(NftId distributionNftId, ReferralId referralId, Amount premium, Amount distributionOwnerFee);
|
49
|
+
event LogDistributionServiceSaleProcessedWithReferral(NftId distributionNftId, NftId distributorNftId, ReferralId referralId, uint32 numPoliciesSold, Amount premium, Amount distributionOwnerFee, Amount commissionAmount);
|
41
50
|
|
42
51
|
function createDistributorType(
|
43
52
|
string memory name,
|
@@ -100,4 +109,8 @@ interface IDistributionService is IService {
|
|
100
109
|
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
101
110
|
/// @return withdrawnAmount the effective withdrawn amount
|
102
111
|
function withdrawCommission(NftId distributorNftId, Amount amount) external returns (Amount withdrawnAmount);
|
112
|
+
|
113
|
+
/// @dev Returns the discount percentage for the provided referral code.
|
114
|
+
/// The function retuns both the percentage and the status of the referral code.
|
115
|
+
function getDiscountPercentage(InstanceReader instanceReader, ReferralId referralId) external view returns (UFixed discountPercentage, ReferralStatus status);
|
103
116
|
}
|
@@ -140,9 +140,9 @@ contract FireProduct is
|
|
140
140
|
revert ErrorFireProductCityUnknown(cityName);
|
141
141
|
}
|
142
142
|
|
143
|
-
|
143
|
+
_setRiskLocked(
|
144
144
|
_riskMapping[cityName],
|
145
|
-
|
145
|
+
true
|
146
146
|
);
|
147
147
|
}
|
148
148
|
|
@@ -156,9 +156,9 @@ contract FireProduct is
|
|
156
156
|
revert ErrorFireProductCityUnknown(cityName);
|
157
157
|
}
|
158
158
|
|
159
|
-
|
159
|
+
_setRiskLocked(
|
160
160
|
_riskMapping[cityName],
|
161
|
-
|
161
|
+
false
|
162
162
|
);
|
163
163
|
}
|
164
164
|
|
@@ -263,7 +263,7 @@ contract FireProduct is
|
|
263
263
|
onlyOwner()
|
264
264
|
onlyNftOfType(policyNftId, POLICY())
|
265
265
|
{
|
266
|
-
_createPolicy(policyNftId, activateAt);
|
266
|
+
_createPolicy(policyNftId, activateAt, AmountLib.max());
|
267
267
|
_collectPremium(policyNftId, activateAt);
|
268
268
|
}
|
269
269
|
|
@@ -316,7 +316,7 @@ contract FireProduct is
|
|
316
316
|
revert ErrorFireProductCityUnknown(cityName);
|
317
317
|
}
|
318
318
|
|
319
|
-
if (reportedAt > TimestampLib.
|
319
|
+
if (reportedAt > TimestampLib.current()) {
|
320
320
|
revert ErrorFireProductTimestampInFuture();
|
321
321
|
}
|
322
322
|
|