@etherisc/gif-next 3.0.0-fbbe3fc-042 → 3.0.0-fbc2b82-347
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 +9 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +42 -56
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +32 -36
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +14 -20
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2 -2
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +42 -29
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- 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/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +2 -2
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +157 -72
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +63 -63
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +85 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +12 -12
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +2 -2
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +47 -52
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +2 -2
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +136 -65
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +149 -30
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +20 -20
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +14 -14
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +2 -2
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +298 -506
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +20 -20
- 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 +1 -1
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +2 -2
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +15 -15
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +12 -12
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +16 -16
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +18 -18
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +2 -2
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
- 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 +1 -1
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +61 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +2 -2
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +97 -97
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +2 -2
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +69 -34
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +102 -25
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +29 -29
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +82 -32
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +68 -18
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +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 +2 -2
- 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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +2 -2
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- 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/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +38 -38
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +32 -20
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +50 -50
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +12 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +12 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +4 -9
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +36 -24
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +51 -51
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +32 -32
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -55
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +12 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +56 -44
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +48 -48
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +2 -2
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +39 -39
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +30 -30
- 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 +6 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- 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 +47 -37
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +69 -69
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -2
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +25 -25
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +85 -85
- 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 +103 -87
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +19 -19
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +73 -48
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +49 -49
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
- 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/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +25 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- 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/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- 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/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/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 +2 -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/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/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +23 -50
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +9 -36
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +28 -28
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +25 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +12 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +73 -48
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -7
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +41 -41
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -14
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +28 -28
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -7
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -7
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
- 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 +2 -7
- 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 +2 -2
- 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 +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
- 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 +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +17 -29
- package/contracts/accounting/IAccountingService.sol +7 -8
- package/contracts/authorization/AccessAdmin.sol +0 -21
- package/contracts/authorization/AccessManagerCloneable.sol +4 -0
- package/contracts/distribution/DistributionService.sol +5 -3
- package/contracts/distribution/IDistributionService.sol +4 -3
- package/contracts/examples/flight/FlightLib.sol +55 -18
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +64 -9
- package/contracts/examples/flight/FlightOracleAuthorization.sol +5 -1
- package/contracts/examples/flight/FlightPool.sol +1 -1
- package/contracts/examples/flight/FlightProduct.sol +182 -180
- package/contracts/examples/flight/FlightProductAuthorization.sol +3 -2
- package/contracts/examples/flight/FlightProductManager.sol +49 -0
- package/contracts/instance/BaseStore.sol +4 -0
- package/contracts/instance/IBaseStore.sol +8 -0
- package/contracts/instance/IInstanceService.sol +2 -0
- package/contracts/instance/InstanceReader.sol +13 -5
- package/contracts/instance/InstanceService.sol +4 -0
- package/contracts/oracle/BasicOracle.sol +1 -0
- package/contracts/oracle/Oracle.sol +2 -2
- package/contracts/pool/BundleService.sol +1 -1
- package/contracts/pool/IBundleService.sol +1 -1
- package/contracts/pool/IPoolService.sol +1 -1
- package/contracts/pool/PoolService.sol +1 -1
- package/contracts/product/IPolicyService.sol +1 -1
- package/contracts/product/PolicyService.sol +1 -1
- package/contracts/product/PolicyServiceLib.sol +5 -3
- package/contracts/registry/ChainNft.sol +1 -1
- package/contracts/registry/IRegistry.sol +1 -1
- package/contracts/registry/Registry.sol +5 -3
- package/contracts/shared/ComponentService.sol +5 -0
- package/contracts/shared/IComponentService.sol +1 -0
- package/contracts/staking/IStaking.sol +2 -0
- package/contracts/staking/IStakingService.sol +1 -1
- package/contracts/staking/Staking.sol +1 -0
- package/contracts/staking/StakingService.sol +1 -1
- package/package.json +3 -3
@@ -9,7 +9,7 @@ import {InstanceStore} from "../instance/InstanceStore.sol";
|
|
9
9
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
10
10
|
import {Fee} from "../type/Fee.sol";
|
11
11
|
import {NftId} from "../type/NftId.sol";
|
12
|
-
import {ObjectType, ACCOUNTING, BUNDLE, DISTRIBUTION, DISTRIBUTOR, POOL, PRODUCT} from "../type/ObjectType.sol";
|
12
|
+
import {ObjectType, ACCOUNTING, BUNDLE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, POOL, PRODUCT} from "../type/ObjectType.sol";
|
13
13
|
import {Service} from "../shared/Service.sol";
|
14
14
|
|
15
15
|
|
@@ -46,7 +46,7 @@ contract AccountingService is
|
|
46
46
|
virtual
|
47
47
|
restricted()
|
48
48
|
{
|
49
|
-
_changeTargetBalance(DECREASE, instanceStore, componentNftId, AmountLib.zero(), feeAmount);
|
49
|
+
_changeTargetBalance(DECREASE, instanceStore, componentNftId, COMPONENT(), AmountLib.zero(), feeAmount);
|
50
50
|
}
|
51
51
|
|
52
52
|
|
@@ -60,7 +60,7 @@ contract AccountingService is
|
|
60
60
|
restricted()
|
61
61
|
{
|
62
62
|
_checkNftType(productNftId, PRODUCT());
|
63
|
-
_changeTargetBalance(INCREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
|
63
|
+
_changeTargetBalance(INCREASE, instanceStore, productNftId, PRODUCT(), AmountLib.zero(), feeAmount);
|
64
64
|
}
|
65
65
|
|
66
66
|
function increaseProductFeesForPool(
|
@@ -73,7 +73,7 @@ contract AccountingService is
|
|
73
73
|
restricted()
|
74
74
|
{
|
75
75
|
_checkNftType(productNftId, PRODUCT());
|
76
|
-
_changeTargetBalance(INCREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
|
76
|
+
_changeTargetBalance(INCREASE, instanceStore, productNftId, PRODUCT(), AmountLib.zero(), feeAmount);
|
77
77
|
}
|
78
78
|
|
79
79
|
|
@@ -83,7 +83,7 @@ contract AccountingService is
|
|
83
83
|
restricted()
|
84
84
|
{
|
85
85
|
_checkNftType(productNftId, PRODUCT());
|
86
|
-
_changeTargetBalance(DECREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
|
86
|
+
_changeTargetBalance(DECREASE, instanceStore, productNftId, PRODUCT(), AmountLib.zero(), feeAmount);
|
87
87
|
}
|
88
88
|
|
89
89
|
function increaseDistributionBalance(
|
@@ -97,7 +97,7 @@ contract AccountingService is
|
|
97
97
|
restricted()
|
98
98
|
{
|
99
99
|
_checkNftType(distributionNftId, DISTRIBUTION());
|
100
|
-
_changeTargetBalance(INCREASE, instanceStore, distributionNftId, amount, feeAmount);
|
100
|
+
_changeTargetBalance(INCREASE, instanceStore, distributionNftId, DISTRIBUTION(), amount, feeAmount);
|
101
101
|
}
|
102
102
|
|
103
103
|
|
@@ -112,7 +112,7 @@ contract AccountingService is
|
|
112
112
|
restricted()
|
113
113
|
{
|
114
114
|
_checkNftType(distributionNftId, DISTRIBUTION());
|
115
|
-
_changeTargetBalance(DECREASE, instanceStore, distributionNftId, amount, feeAmount);
|
115
|
+
_changeTargetBalance(DECREASE, instanceStore, distributionNftId, DISTRIBUTION(), amount, feeAmount);
|
116
116
|
}
|
117
117
|
|
118
118
|
function increaseDistributorBalance(
|
@@ -126,7 +126,7 @@ contract AccountingService is
|
|
126
126
|
restricted()
|
127
127
|
{
|
128
128
|
_checkNftType(distributorNftId, DISTRIBUTOR());
|
129
|
-
_changeTargetBalance(INCREASE, instanceStore, distributorNftId, amount, feeAmount);
|
129
|
+
_changeTargetBalance(INCREASE, instanceStore, distributorNftId, DISTRIBUTOR(), amount, feeAmount);
|
130
130
|
}
|
131
131
|
|
132
132
|
function decreaseDistributorBalance(
|
@@ -140,7 +140,7 @@ contract AccountingService is
|
|
140
140
|
restricted()
|
141
141
|
{
|
142
142
|
_checkNftType(distributorNftId, DISTRIBUTOR());
|
143
|
-
_changeTargetBalance(DECREASE, instanceStore, distributorNftId, amount, feeAmount);
|
143
|
+
_changeTargetBalance(DECREASE, instanceStore, distributorNftId, DISTRIBUTOR(), amount, feeAmount);
|
144
144
|
}
|
145
145
|
|
146
146
|
function increasePoolBalance(
|
@@ -154,7 +154,7 @@ contract AccountingService is
|
|
154
154
|
restricted()
|
155
155
|
{
|
156
156
|
_checkNftType(poolNftId, POOL());
|
157
|
-
_changeTargetBalance(INCREASE, instanceStore, poolNftId, amount, feeAmount);
|
157
|
+
_changeTargetBalance(INCREASE, instanceStore, poolNftId, POOL(), amount, feeAmount);
|
158
158
|
}
|
159
159
|
|
160
160
|
function decreasePoolBalance(
|
@@ -168,7 +168,7 @@ contract AccountingService is
|
|
168
168
|
restricted()
|
169
169
|
{
|
170
170
|
_checkNftType(poolNftId, POOL());
|
171
|
-
_changeTargetBalance(DECREASE, instanceStore, poolNftId, amount, feeAmount);
|
171
|
+
_changeTargetBalance(DECREASE, instanceStore, poolNftId, POOL(), amount, feeAmount);
|
172
172
|
}
|
173
173
|
|
174
174
|
function increaseBundleBalance(
|
@@ -182,7 +182,7 @@ contract AccountingService is
|
|
182
182
|
restricted()
|
183
183
|
{
|
184
184
|
_checkNftType(bundleNftId, BUNDLE());
|
185
|
-
_changeTargetBalance(INCREASE, instanceStore, bundleNftId, amount, feeAmount);
|
185
|
+
_changeTargetBalance(INCREASE, instanceStore, bundleNftId, BUNDLE(), amount, feeAmount);
|
186
186
|
}
|
187
187
|
|
188
188
|
function decreaseBundleBalance(
|
@@ -196,7 +196,7 @@ contract AccountingService is
|
|
196
196
|
restricted()
|
197
197
|
{
|
198
198
|
_checkNftType(bundleNftId, BUNDLE());
|
199
|
-
_changeTargetBalance(DECREASE, instanceStore, bundleNftId, amount, feeAmount);
|
199
|
+
_changeTargetBalance(DECREASE, instanceStore, bundleNftId, BUNDLE(), amount, feeAmount);
|
200
200
|
}
|
201
201
|
|
202
202
|
function increaseBundleBalanceForPool(
|
@@ -210,7 +210,7 @@ contract AccountingService is
|
|
210
210
|
restricted()
|
211
211
|
{
|
212
212
|
_checkNftType(bundleNftId, BUNDLE());
|
213
|
-
_changeTargetBalance(INCREASE, instanceStore, bundleNftId, amount, feeAmount);
|
213
|
+
_changeTargetBalance(INCREASE, instanceStore, bundleNftId, BUNDLE(), amount, feeAmount);
|
214
214
|
}
|
215
215
|
|
216
216
|
function decreaseBundleBalanceForPool(
|
@@ -224,7 +224,7 @@ contract AccountingService is
|
|
224
224
|
restricted()
|
225
225
|
{
|
226
226
|
_checkNftType(bundleNftId, BUNDLE());
|
227
|
-
_changeTargetBalance(DECREASE, instanceStore, bundleNftId, amount, feeAmount);
|
227
|
+
_changeTargetBalance(DECREASE, instanceStore, bundleNftId, BUNDLE(), amount, feeAmount);
|
228
228
|
}
|
229
229
|
|
230
230
|
|
@@ -234,6 +234,7 @@ contract AccountingService is
|
|
234
234
|
bool increase,
|
235
235
|
InstanceStore instanceStore,
|
236
236
|
NftId targetNftId,
|
237
|
+
ObjectType objectType,
|
237
238
|
Amount amount,
|
238
239
|
Amount feeAmount
|
239
240
|
)
|
@@ -249,21 +250,8 @@ contract AccountingService is
|
|
249
250
|
if(totalAmount.gtz()) { instanceStore.decreaseBalance(targetNftId, totalAmount); }
|
250
251
|
if(feeAmount.gtz()) { instanceStore.decreaseFees(targetNftId, feeAmount); }
|
251
252
|
}
|
252
|
-
}
|
253
|
-
|
254
253
|
|
255
|
-
|
256
|
-
internal
|
257
|
-
virtual
|
258
|
-
{
|
259
|
-
emit LogComponentServiceUpdateFee(
|
260
|
-
productNftId,
|
261
|
-
name,
|
262
|
-
feeBefore.fractionalFee,
|
263
|
-
feeBefore.fixedFee,
|
264
|
-
feeAfter.fractionalFee,
|
265
|
-
feeAfter.fixedFee
|
266
|
-
);
|
254
|
+
emit LogAccountingServiceBalanceChanged(targetNftId, amount, feeAmount, increase, objectType);
|
267
255
|
}
|
268
256
|
|
269
257
|
function _getDomain() internal pure virtual override returns(ObjectType) {
|
@@ -6,20 +6,19 @@ import {Amount} from "../type/Amount.sol";
|
|
6
6
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
7
7
|
import {IService} from "../shared/IService.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
|
-
import {
|
9
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
10
10
|
|
11
11
|
/// @dev component base class
|
12
12
|
/// component examples are staking, product, distribution, pool and oracle
|
13
13
|
interface IAccountingService is
|
14
14
|
IService
|
15
15
|
{
|
16
|
-
event
|
17
|
-
NftId nftId,
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
Amount newFixedFee
|
16
|
+
event LogAccountingServiceBalanceChanged(
|
17
|
+
NftId indexed nftId,
|
18
|
+
Amount indexed amount,
|
19
|
+
Amount indexed feeAmount,
|
20
|
+
bool increase,
|
21
|
+
ObjectType objectType
|
23
22
|
);
|
24
23
|
|
25
24
|
function decreaseComponentFees(InstanceStore instanceStore, NftId componentNftId, Amount feeAmount) external;
|
@@ -657,25 +657,4 @@ contract AccessAdmin is
|
|
657
657
|
AccessAdminLib.toFunctionGrantingString(this, func.name, roleId),
|
658
658
|
lastUpdateIn);
|
659
659
|
}
|
660
|
-
|
661
|
-
|
662
|
-
// TODO cleanup
|
663
|
-
// function _checkAuthorization(
|
664
|
-
// address authorization,
|
665
|
-
// ObjectType expectedDomain,
|
666
|
-
// VersionPart expectedRelease,
|
667
|
-
// bool expectServiceAuthorization,
|
668
|
-
// bool checkAlreadyInitialized
|
669
|
-
// )
|
670
|
-
// internal
|
671
|
-
// view
|
672
|
-
// {
|
673
|
-
// AccessAdminLib.checkAuthorization(
|
674
|
-
// _authorization,
|
675
|
-
// authorization,
|
676
|
-
// expectedDomain,
|
677
|
-
// expectedRelease,
|
678
|
-
// expectServiceAuthorization,
|
679
|
-
// checkAlreadyInitialized);
|
680
|
-
// }
|
681
660
|
}
|
@@ -24,6 +24,8 @@ contract AccessManagerCloneable is
|
|
24
24
|
error ErrorAccessManagerTargetAdminLocked(address target);
|
25
25
|
error ErrorAccessManagerCallerAdminLocked(address caller);
|
26
26
|
|
27
|
+
event LogAccessManagerLocked(address indexed accessManager, bool indexed locked);
|
28
|
+
|
27
29
|
VersionPart private _release;
|
28
30
|
bool private _isLocked;
|
29
31
|
|
@@ -39,6 +41,7 @@ contract AccessManagerCloneable is
|
|
39
41
|
|
40
42
|
function initialize(address admin)
|
41
43
|
public
|
44
|
+
override
|
42
45
|
initializer()
|
43
46
|
{
|
44
47
|
__ERC165_init();
|
@@ -94,6 +97,7 @@ contract AccessManagerCloneable is
|
|
94
97
|
onlyAdminRole()
|
95
98
|
{
|
96
99
|
_isLocked = locked;
|
100
|
+
emit LogAccessManagerLocked(address(this), locked);
|
97
101
|
}
|
98
102
|
|
99
103
|
|
@@ -112,7 +112,7 @@ contract DistributionService is
|
|
112
112
|
|
113
113
|
instance.getInstanceStore().createDistributorType(distributorType, info);
|
114
114
|
|
115
|
-
emit LogDistributionServiceDistributorTypeCreated(distributionNftId, name);
|
115
|
+
emit LogDistributionServiceDistributorTypeCreated(distributionNftId, name, commissionPercentage);
|
116
116
|
}
|
117
117
|
|
118
118
|
|
@@ -236,7 +236,7 @@ contract DistributionService is
|
|
236
236
|
|
237
237
|
instance.getInstanceStore().createReferral(referralId, info);
|
238
238
|
|
239
|
-
emit LogDistributionServiceReferralCreated(distributionNftId, distributorNftId, referralId, code);
|
239
|
+
emit LogDistributionServiceReferralCreated(distributionNftId, distributorNftId, referralId, code, discountPercentage, maxReferrals, expiryAt);
|
240
240
|
}
|
241
241
|
}
|
242
242
|
|
@@ -295,12 +295,14 @@ contract DistributionService is
|
|
295
295
|
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
296
296
|
distributorInfo.numPoliciesSold += 1;
|
297
297
|
store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
|
298
|
+
emit LogDistributionServiceSaleProcessedWithReferral(distributionNftId, referralInfo.distributorNftId, referralId, distributorInfo.numPoliciesSold, premium.premiumAmount, distributionOwnerFee, commissionAmount);
|
298
299
|
} else {
|
299
300
|
// increase distribution balance by distribution owner fee
|
300
301
|
_accountingService.increaseDistributionBalance(store, distributionNftId, AmountLib.zero(), distributionOwnerFee);
|
302
|
+
emit LogDistributionServiceSaleProcessed(distributionNftId, referralId, premium.premiumAmount, distributionOwnerFee);
|
301
303
|
}
|
302
304
|
|
303
|
-
|
305
|
+
|
304
306
|
}
|
305
307
|
|
306
308
|
/// @inheritdoc IDistributionService
|
@@ -40,12 +40,13 @@ interface IDistributionService is IService {
|
|
40
40
|
error ErrorDistributionServiceReferralDistributionMismatch(ReferralId referralId, NftId referralDistributionNft, NftId distributionNftId);
|
41
41
|
|
42
42
|
event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient, address tokenAddress, Amount amount);
|
43
|
-
event LogDistributionServiceDistributorTypeCreated(NftId distributionNftId, string name);
|
43
|
+
event LogDistributionServiceDistributorTypeCreated(NftId distributionNftId, string name, UFixed commissionPercentage);
|
44
44
|
event LogDistributionServiceDistributorCreated(NftId distributionNftId, NftId distributorNftId, DistributorType distributorType, address distributor);
|
45
45
|
event LogDistributionServiceDistributorTypeChanged(NftId distributorNftId, DistributorType oldDistributorType, DistributorType newDistributorType);
|
46
|
-
event LogDistributionServiceReferralCreated(NftId distributionNftId, NftId distributorNftId, ReferralId referralId, string code);
|
46
|
+
event LogDistributionServiceReferralCreated(NftId distributionNftId, NftId distributorNftId, ReferralId referralId, string code, UFixed discountPercentage, uint32 maxReferrals, Timestamp expiryAt);
|
47
47
|
event LogDistributionServiceReferralProcessed(NftId distributionNftId, NftId distributorNftId, ReferralId referralId, uint32 usedReferrals);
|
48
|
-
event LogDistributionServiceSaleProcessed(NftId distributionNftId, ReferralId referralId);
|
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);
|
49
50
|
|
50
51
|
function createDistributorType(
|
51
52
|
string memory name,
|
@@ -11,6 +11,7 @@ import {InstanceReader} from "../../instance/InstanceReader.sol";
|
|
11
11
|
import {NftId} from "../../type/NftId.sol";
|
12
12
|
import {RequestId} from "../../type/RequestId.sol";
|
13
13
|
import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
|
14
|
+
import {Seconds} from "../../type/Seconds.sol";
|
14
15
|
import {StateId} from "../../type/StateId.sol";
|
15
16
|
import {Str} from "../../type/String.sol";
|
16
17
|
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
@@ -18,6 +19,19 @@ import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
|
18
19
|
|
19
20
|
library FlightLib {
|
20
21
|
|
22
|
+
event LogFlightProductErrorUnprocessableStatus(RequestId requestId, RiskId riskId, bytes1 status);
|
23
|
+
event LogFlightProductErrorUnexpectedStatus(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes);
|
24
|
+
|
25
|
+
error ErrorFlightProductRiskInvalid(RiskId riskId);
|
26
|
+
error ErrorFlightProductPremiumAmountTooSmall(Amount premiumAmount, Amount minPremium);
|
27
|
+
error ErrorFlightProductPremiumAmountTooLarge(Amount premiumAmount, Amount maxPremium);
|
28
|
+
error ErrorFlightProductArrivalBeforeDepartureTime(Timestamp departureTime, Timestamp arrivalTime);
|
29
|
+
error ErrorFlightProductArrivalAfterMaxFlightDuration(Timestamp arrivalTime, Timestamp maxArrivalTime, Seconds maxDuration);
|
30
|
+
error ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(Timestamp departureTime, Timestamp now, Seconds minTimeBeforeDeparture);
|
31
|
+
error ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(Timestamp departureTime, Timestamp now, Seconds maxTimeBeforeDeparture);
|
32
|
+
error ErrorFlightProductNotEnoughObservations(uint256 observations, uint256 minObservations);
|
33
|
+
error ErrorFlightProductClusterRisk(Amount totalSumInsured, Amount maxTotalPayout);
|
34
|
+
|
21
35
|
function checkApplicationData(
|
22
36
|
FlightProduct flightProduct,
|
23
37
|
Str flightData,
|
@@ -45,32 +59,45 @@ library FlightLib {
|
|
45
59
|
|
46
60
|
// solhint-disable
|
47
61
|
if (premiumAmount < flightProduct.MIN_PREMIUM()) {
|
48
|
-
revert
|
62
|
+
revert ErrorFlightProductPremiumAmountTooSmall(premiumAmount, flightProduct.MIN_PREMIUM());
|
49
63
|
}
|
50
64
|
if (premiumAmount > flightProduct.MAX_PREMIUM()) {
|
51
|
-
revert
|
65
|
+
revert ErrorFlightProductPremiumAmountTooLarge(premiumAmount, flightProduct.MAX_PREMIUM());
|
52
66
|
}
|
53
67
|
if (arrivalTime <= departureTime) {
|
54
|
-
revert
|
68
|
+
revert ErrorFlightProductArrivalBeforeDepartureTime(departureTime, arrivalTime);
|
55
69
|
}
|
56
|
-
|
57
|
-
|
58
|
-
if (!testMode && arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) {
|
59
|
-
revert FlightProduct.ErrorFlightProductArrivalAfterMaxFlightDuration(arrivalTime, departureTime, flightProduct.MAX_FLIGHT_DURATION());
|
70
|
+
if (arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) {
|
71
|
+
revert ErrorFlightProductArrivalAfterMaxFlightDuration(arrivalTime, departureTime, flightProduct.MAX_FLIGHT_DURATION());
|
60
72
|
}
|
73
|
+
|
74
|
+
// test mode allows the creation for policies that are outside restricted policy creation times
|
61
75
|
if (!testMode && departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) {
|
62
|
-
revert
|
76
|
+
revert ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MIN_TIME_BEFORE_DEPARTURE());
|
63
77
|
}
|
64
78
|
if (!testMode && departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) {
|
65
|
-
revert
|
79
|
+
revert ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MAX_TIME_BEFORE_DEPARTURE());
|
66
80
|
}
|
67
81
|
// solhint-enable
|
68
82
|
}
|
69
83
|
|
70
84
|
|
85
|
+
function checkClusterRisk(
|
86
|
+
Amount sumOfSumInsuredAmounts,
|
87
|
+
Amount sumInsuredAmount,
|
88
|
+
Amount maxTotalPayout
|
89
|
+
)
|
90
|
+
public
|
91
|
+
pure
|
92
|
+
{
|
93
|
+
if (sumOfSumInsuredAmounts + sumInsuredAmount > maxTotalPayout) {
|
94
|
+
revert ErrorFlightProductClusterRisk(sumOfSumInsuredAmounts + sumInsuredAmount, maxTotalPayout);
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
|
71
99
|
/// @dev calculates payout option based on flight status and delay minutes.
|
72
100
|
/// Is not a view function as it emits log evens in case of unexpected status.
|
73
|
-
// TODO decide if reverts instead of log events could work too (and convert the function into a view function)
|
74
101
|
function checkAndGetPayoutOption(
|
75
102
|
RequestId requestId,
|
76
103
|
RiskId riskId,
|
@@ -85,13 +112,13 @@ library FlightLib {
|
|
85
112
|
|
86
113
|
// check status
|
87
114
|
if (status != "L" && status != "A" && status != "C" && status != "D") {
|
88
|
-
emit
|
115
|
+
emit LogFlightProductErrorUnprocessableStatus(requestId, riskId, status);
|
89
116
|
return payoutOption;
|
90
117
|
}
|
91
118
|
|
92
119
|
if (status == "A") {
|
93
120
|
// todo: active, reschedule oracle call + 45 min
|
94
|
-
emit
|
121
|
+
emit LogFlightProductErrorUnexpectedStatus(requestId, riskId, status, delayMinutes);
|
95
122
|
return payoutOption;
|
96
123
|
}
|
97
124
|
|
@@ -114,7 +141,7 @@ library FlightLib {
|
|
114
141
|
{
|
115
142
|
// check we have enough observations
|
116
143
|
if (statistics[0] < flightProduct.MIN_OBSERVATIONS()) {
|
117
|
-
revert
|
144
|
+
revert ErrorFlightProductNotEnoughObservations(statistics[0], flightProduct.MIN_OBSERVATIONS());
|
118
145
|
}
|
119
146
|
|
120
147
|
weight = 0;
|
@@ -147,10 +174,10 @@ library FlightLib {
|
|
147
174
|
)
|
148
175
|
{
|
149
176
|
if (premium < flightProduct.MIN_PREMIUM()) {
|
150
|
-
revert
|
177
|
+
revert ErrorFlightProductPremiumAmountTooSmall(premium, flightProduct.MIN_PREMIUM());
|
151
178
|
}
|
152
179
|
if (premium > flightProduct.MAX_PREMIUM()) {
|
153
|
-
revert
|
180
|
+
revert ErrorFlightProductPremiumAmountTooLarge(premium, flightProduct.MAX_PREMIUM());
|
154
181
|
}
|
155
182
|
|
156
183
|
sumInsuredAmount = AmountLib.zero();
|
@@ -186,7 +213,8 @@ library FlightLib {
|
|
186
213
|
(exists, flightRisk) = getFlightRisk(
|
187
214
|
reader,
|
188
215
|
productNftId,
|
189
|
-
riskId
|
216
|
+
riskId,
|
217
|
+
false);
|
190
218
|
|
191
219
|
statusAvailable = flightRisk.statusUpdatedAt.gtz();
|
192
220
|
payoutOption = flightRisk.payoutOption;
|
@@ -201,6 +229,10 @@ library FlightLib {
|
|
201
229
|
pure
|
202
230
|
returns (Amount payoutAmount)
|
203
231
|
{
|
232
|
+
if (payoutOption == type(uint8).max) {
|
233
|
+
return AmountLib.zero();
|
234
|
+
}
|
235
|
+
|
204
236
|
// retrieve payout amounts from application data
|
205
237
|
(, Amount[5] memory payoutAmounts) = abi.decode(
|
206
238
|
applicationData, (Amount, Amount[5]));
|
@@ -228,7 +260,7 @@ library FlightLib {
|
|
228
260
|
)
|
229
261
|
{
|
230
262
|
riskId = getRiskId(productNftId, flightData);
|
231
|
-
(exists, flightRisk) = getFlightRisk(reader, productNftId, riskId);
|
263
|
+
(exists, flightRisk) = getFlightRisk(reader, productNftId, riskId, false);
|
232
264
|
|
233
265
|
// create new risk if not existing
|
234
266
|
if (!exists) {
|
@@ -250,7 +282,8 @@ library FlightLib {
|
|
250
282
|
function getFlightRisk(
|
251
283
|
InstanceReader reader,
|
252
284
|
NftId productNftId,
|
253
|
-
RiskId riskId
|
285
|
+
RiskId riskId,
|
286
|
+
bool requireRiskExists
|
254
287
|
)
|
255
288
|
public
|
256
289
|
view
|
@@ -262,6 +295,10 @@ library FlightLib {
|
|
262
295
|
// check if risk exists
|
263
296
|
exists = reader.isProductRisk(productNftId, riskId);
|
264
297
|
|
298
|
+
if (!exists && requireRiskExists) {
|
299
|
+
revert ErrorFlightProductRiskInvalid(riskId);
|
300
|
+
}
|
301
|
+
|
265
302
|
// get risk data if risk exists
|
266
303
|
if (exists) {
|
267
304
|
flightRisk = abi.decode(
|