@etherisc/gif-next 3.0.0-65fa82c-553 → 3.0.0-6788417-745
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 +44 -48
- 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 +99 -87
- 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/IAccessAdmin.sol/IAccessAdmin.json +75 -63
- 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 +20 -114
- 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/Distribution.sol/Distribution.json +2 -96
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +187 -114
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +75 -75
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +2 -96
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +113 -40
- package/artifacts/contracts/examples/crop/AccountingToken.sol/AccountingToken.dbg.json +4 -0
- package/artifacts/contracts/examples/crop/AccountingToken.sol/AccountingToken.json +376 -0
- package/artifacts/contracts/examples/crop/CropPool.sol/CropPool.dbg.json +4 -0
- package/artifacts/contracts/examples/crop/CropPool.sol/CropPool.json +1391 -0
- package/artifacts/contracts/examples/crop/CropPoolAuthorization.sol/CropPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/crop/CropPoolAuthorization.sol/CropPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/crop/CropProduct.sol/CropProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/crop/CropProduct.sol/CropProduct.json +2327 -0
- package/artifacts/contracts/examples/crop/CropProductAuthorization.sol/CropProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/crop/CropProductAuthorization.sol/CropProductAuthorization.json +891 -0
- package/artifacts/contracts/examples/crop/Location.sol/LocationLib.dbg.json +4 -0
- package/artifacts/contracts/examples/crop/Location.sol/LocationLib.json +199 -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 +21 -96
- 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 +49 -129
- 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 +131 -132
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +2 -2
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +23 -98
- 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 +302 -585
- 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 +28 -122
- 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 +91 -83
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +29 -104
- 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 +25 -100
- 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 +59 -72
- 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/IInstance.sol/IInstance.json +34 -21
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +108 -9
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +51 -33
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +191 -179
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +21 -21
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +136 -34
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +151 -36
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +41 -41
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +171 -121
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +141 -91
- package/artifacts/contracts/instance/RequestSet.sol/RequestSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RequestSet.sol/RequestSet.json +466 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +66 -79
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +9 -9
- 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 +3 -3
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +38 -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 +85 -77
- 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/IOracleComponent.sol/IOracleComponent.json +67 -59
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +19 -13
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +71 -63
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +57 -51
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +50 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +4 -79
- 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 +90 -85
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +62 -62
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -27
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +4 -79
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +55 -43
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +4 -79
- 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 +113 -101
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +63 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +37 -37
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +44 -44
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +2 -77
- 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 +86 -80
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +67 -67
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +11 -11
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +24 -18
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +21 -9
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +2 -2
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +2 -77
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +15 -28
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +81 -69
- 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 +60 -60
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +34 -34
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +51 -51
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +2 -77
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +37 -50
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +42 -42
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +58 -8
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +30 -24
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +2 -2
- 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 +132 -66
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +168 -156
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -27
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +8 -8
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -37
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +198 -186
- 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 +119 -110
- 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 +20 -20
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +2 -77
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +329 -113
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +61 -61
- 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/IAuthorizedComponent.sol/IAuthorizedComponent.json +2 -77
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +2 -77
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +271 -55
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +2 -77
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +2 -77
- 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 +4 -4
- 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 +2 -2
- 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 +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +39 -66
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +22 -49
- 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 +91 -147
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +15 -221
- 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 +139 -195
- 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 +53 -53
- 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 +35 -241
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +40 -40
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +220 -220
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +9 -14
- 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 +23 -4
- 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 +22 -22
- 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 +10 -29
- package/contracts/authorization/AccessManagerCloneable.sol +4 -0
- package/contracts/authorization/IAccessAdmin.sol +9 -8
- package/contracts/distribution/DistributionService.sol +24 -19
- package/contracts/distribution/IDistributionComponent.sol +0 -2
- package/contracts/distribution/IDistributionService.sol +8 -7
- package/contracts/examples/crop/AccountingToken.sol +26 -0
- package/contracts/examples/crop/CropPool.sol +89 -0
- package/contracts/examples/crop/CropPoolAuthorization.sol +37 -0
- package/contracts/examples/crop/CropProduct.sol +495 -0
- package/contracts/examples/crop/CropProductAuthorization.sol +69 -0
- package/contracts/examples/crop/Location.sol +50 -0
- package/contracts/examples/flight/FlightLib.sol +55 -18
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +20 -62
- package/contracts/examples/flight/FlightOracleAuthorization.sol +4 -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/BundleSet.sol +7 -8
- package/contracts/instance/IBaseStore.sol +8 -0
- package/contracts/instance/IInstance.sol +10 -7
- package/contracts/instance/IInstanceService.sol +11 -4
- package/contracts/instance/Instance.sol +8 -0
- package/contracts/instance/InstanceAdmin.sol +2 -1
- package/contracts/instance/InstanceAuthorizationV3.sol +15 -1
- package/contracts/instance/InstanceReader.sol +28 -5
- package/contracts/instance/InstanceService.sol +68 -36
- package/contracts/instance/InstanceStore.sol +14 -14
- package/contracts/instance/ProductStore.sol +14 -14
- package/contracts/instance/RequestSet.sol +63 -0
- package/contracts/instance/RiskSet.sol +6 -7
- package/contracts/instance/TargetNames.sol +1 -0
- package/contracts/instance/base/BalanceStore.sol +7 -7
- package/contracts/instance/base/ObjectSet.sol +9 -1
- package/contracts/instance/base/ObjectSetHelperLib.sol +5 -1
- package/contracts/oracle/BasicOracle.sol +1 -0
- package/contracts/oracle/IOracleComponent.sol +10 -0
- package/contracts/oracle/IOracleService.sol +5 -5
- package/contracts/oracle/Oracle.sol +50 -26
- package/contracts/oracle/OracleService.sol +26 -23
- package/contracts/pool/BundleService.sol +3 -3
- package/contracts/pool/IBundleService.sol +9 -10
- package/contracts/pool/IPoolComponent.sol +1 -1
- package/contracts/pool/IPoolService.sol +14 -14
- package/contracts/pool/PoolService.sol +2 -2
- package/contracts/product/ClaimService.sol +1 -1
- package/contracts/product/IApplicationService.sol +8 -8
- package/contracts/product/IClaimService.sol +9 -9
- package/contracts/product/IPolicyService.sol +7 -7
- package/contracts/product/IRiskService.sol +4 -5
- package/contracts/product/PolicyService.sol +1 -1
- package/contracts/product/PolicyServiceLib.sol +5 -3
- package/contracts/product/RiskService.sol +2 -2
- package/contracts/registry/ChainNft.sol +10 -9
- package/contracts/registry/IRegistry.sol +11 -10
- package/contracts/registry/Registry.sol +16 -13
- package/contracts/registry/RegistryAuthorization.sol +0 -2
- package/contracts/registry/ReleaseAdmin.sol +4 -4
- package/contracts/registry/ReleaseRegistry.sol +7 -8
- package/contracts/registry/TokenRegistry.sol +3 -3
- package/contracts/shared/ComponentService.sol +38 -4
- package/contracts/shared/IComponent.sol +0 -4
- package/contracts/shared/IComponentService.sol +31 -9
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +1 -1
- package/contracts/shared/TokenHandler.sol +5 -5
- package/contracts/staking/IStaking.sol +33 -31
- package/contracts/staking/IStakingService.sol +7 -16
- package/contracts/staking/Staking.sol +5 -4
- package/contracts/staking/StakingService.sol +2 -3
- package/contracts/staking/StakingStore.sol +3 -3
- package/contracts/staking/TargetHandler.sol +2 -2
- package/contracts/type/RequestId.sol +6 -0
- package/contracts/upgradeability/ProxyManager.sol +2 -2
- package/package.json +3 -3
@@ -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(
|
@@ -0,0 +1,234 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
|
5
|
+
import {IERC721Metadata} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol";
|
6
|
+
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
|
7
|
+
|
8
|
+
import {IPolicy} from "../../instance/module/IPolicy.sol";
|
9
|
+
import {IRegistry} from "../../registry/IRegistry.sol";
|
10
|
+
|
11
|
+
import {Amount} from "../../type/Amount.sol";
|
12
|
+
import {ChainNft} from "../../registry/ChainNft.sol";
|
13
|
+
import {FlightProduct} from "./FlightProduct.sol";
|
14
|
+
import {InstanceReader} from "../../instance/InstanceReader.sol";
|
15
|
+
import {NftId, NftIdLib} from "../../type/NftId.sol";
|
16
|
+
import {RiskId} from "../../type/RiskId.sol";
|
17
|
+
|
18
|
+
|
19
|
+
/**
|
20
|
+
* @title FlightNft
|
21
|
+
* @dev FlightNft provides NFT data for flight delay policies.
|
22
|
+
*/
|
23
|
+
// contract FlightNft is IERC721Metadata {
|
24
|
+
contract FlightNft is
|
25
|
+
ERC721,
|
26
|
+
Ownable
|
27
|
+
{
|
28
|
+
|
29
|
+
error ErrorFlightNftNotMinter();
|
30
|
+
error ErrorFlightNftAlreadyMinted(uint256 tokenId);
|
31
|
+
error ErrorFlightNftNotAvailable(uint256 tokenId);
|
32
|
+
error ErrorFlightNftNotFlightPolicy(uint256 tokenId);
|
33
|
+
|
34
|
+
ChainNft public immutable chainNft;
|
35
|
+
FlightProduct public immutable flightProduct;
|
36
|
+
InstanceReader public immutable instanceReader;
|
37
|
+
IRegistry public registry;
|
38
|
+
|
39
|
+
address public minter;
|
40
|
+
string private _baseUri;
|
41
|
+
|
42
|
+
|
43
|
+
modifier onlyMinter() {
|
44
|
+
if(msg.sender != minter) {
|
45
|
+
revert ErrorFlightNftNotMinter();
|
46
|
+
}
|
47
|
+
_;
|
48
|
+
}
|
49
|
+
|
50
|
+
|
51
|
+
constructor(
|
52
|
+
address flightProductAddress,
|
53
|
+
string memory nftName,
|
54
|
+
string memory nftSymbol,
|
55
|
+
string memory baseUri
|
56
|
+
)
|
57
|
+
ERC721(nftName, nftSymbol)
|
58
|
+
Ownable(msg.sender)
|
59
|
+
{
|
60
|
+
flightProduct = FlightProduct(flightProductAddress);
|
61
|
+
registry = flightProduct.getRegistry();
|
62
|
+
chainNft = ChainNft(registry.getChainNftAddress());
|
63
|
+
instanceReader = flightProduct.getInstance().getInstanceReader();
|
64
|
+
|
65
|
+
minter = msg.sender;
|
66
|
+
_baseUri = baseUri;
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
/**
|
71
|
+
* Set the base URI to the specified value.
|
72
|
+
* Once set, this results in tokenURI() to return <baseUri><tokenId>.
|
73
|
+
*/
|
74
|
+
function setBaseURI(string memory baseUri)
|
75
|
+
public
|
76
|
+
onlyOwner()
|
77
|
+
{
|
78
|
+
_baseUri = baseUri;
|
79
|
+
}
|
80
|
+
|
81
|
+
|
82
|
+
/**
|
83
|
+
* Set the minter address.
|
84
|
+
*/
|
85
|
+
function setMinter(address minterAddress)
|
86
|
+
public
|
87
|
+
onlyOwner()
|
88
|
+
{
|
89
|
+
minter = minterAddress;
|
90
|
+
}
|
91
|
+
|
92
|
+
|
93
|
+
/**
|
94
|
+
* Mints a metadata NFT for the specified chainNft NFT.
|
95
|
+
* Only the minter can mint such NFTs.
|
96
|
+
*/
|
97
|
+
function mint(uint256 tokenId)
|
98
|
+
external
|
99
|
+
onlyMinter()
|
100
|
+
{
|
101
|
+
// verify nft does not yet exist
|
102
|
+
if (_ownerOf(tokenId) != address(0)) {
|
103
|
+
revert ErrorFlightNftAlreadyMinted(tokenId);
|
104
|
+
}
|
105
|
+
|
106
|
+
// verify nft on chainNft exists
|
107
|
+
// also checks if nft exists (ERC721NonexistentToken)
|
108
|
+
address nftOwner = chainNft.ownerOf(tokenId);
|
109
|
+
|
110
|
+
// verify nft is flight delay policy
|
111
|
+
if (registry.getParentNftId(NftIdLib.toNftId(tokenId)) != registry.getNftIdForAddress(address(flightProduct))) {
|
112
|
+
revert ErrorFlightNftNotFlightPolicy(tokenId);
|
113
|
+
}
|
114
|
+
|
115
|
+
_mint(nftOwner, tokenId);
|
116
|
+
}
|
117
|
+
|
118
|
+
|
119
|
+
/**
|
120
|
+
* @dev Return the NFT token URI for the specified token.
|
121
|
+
* No check is performed to ensure the token exists.
|
122
|
+
*/
|
123
|
+
function tokenURI(uint256 tokenId) public view override returns (string memory) {
|
124
|
+
string memory baseURI = _baseURI();
|
125
|
+
return bytes(baseURI).length > 0 ? string.concat(baseURI, toString(tokenId)) : "";
|
126
|
+
}
|
127
|
+
|
128
|
+
|
129
|
+
/**
|
130
|
+
* @dev Base URI for computing {tokenURI}. If set, the resulting URI for each
|
131
|
+
* token will be the concatenation of the `baseURI` and the `tokenId`. Empty
|
132
|
+
* by default, can be overridden in child contracts.
|
133
|
+
*/
|
134
|
+
function _baseURI() internal override view returns (string memory) {
|
135
|
+
return _baseUri;
|
136
|
+
}
|
137
|
+
|
138
|
+
|
139
|
+
function approve(address to, uint256 tokenId) public override { _revert(); }
|
140
|
+
function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public override { _revert(); }
|
141
|
+
function setApprovalForAll(address operator, bool approved) public override { _revert(); }
|
142
|
+
function transferFrom(address from, address to, uint256 tokenId) public override { _revert(); }
|
143
|
+
|
144
|
+
function balanceOf(address owner) public override view returns (uint256 balance) {
|
145
|
+
return chainNft.balanceOf(owner);
|
146
|
+
}
|
147
|
+
|
148
|
+
function getApproved(uint256 tokenId) public override view returns (address operator) {
|
149
|
+
return chainNft.getApproved(tokenId);
|
150
|
+
}
|
151
|
+
|
152
|
+
function isApprovedForAll(address owner, address operator) public override view returns (bool) {
|
153
|
+
return chainNft.isApprovedForAll(owner, operator);
|
154
|
+
}
|
155
|
+
|
156
|
+
function ownerOf(uint256 tokenId) public override view returns (address owner) {
|
157
|
+
return chainNft.ownerOf(tokenId);
|
158
|
+
}
|
159
|
+
|
160
|
+
function supportsInterface(bytes4 interfaceId) public override view returns (bool) {
|
161
|
+
return chainNft.supportsInterface(interfaceId);
|
162
|
+
}
|
163
|
+
|
164
|
+
|
165
|
+
function getPolicyData(NftId policyNftId)
|
166
|
+
public
|
167
|
+
view
|
168
|
+
returns (
|
169
|
+
RiskId riskId,
|
170
|
+
string memory flightData,
|
171
|
+
string memory departureTimeLocal,
|
172
|
+
string memory arrivalTimeLocal,
|
173
|
+
Amount premiumAmount,
|
174
|
+
Amount[5] memory payoutAmounts,
|
175
|
+
bytes1 status,
|
176
|
+
int256 delayMinutes
|
177
|
+
)
|
178
|
+
{
|
179
|
+
IPolicy.PolicyInfo memory info = instanceReader.getPolicyInfo(policyNftId);
|
180
|
+
|
181
|
+
// get financial data
|
182
|
+
premiumAmount = info.premiumAmount;
|
183
|
+
|
184
|
+
if (info.applicationData.length > 0) {
|
185
|
+
(, payoutAmounts) = abi.decode(info.applicationData, (Amount, Amount[5]));
|
186
|
+
}
|
187
|
+
|
188
|
+
// get risk data
|
189
|
+
riskId = info.riskId;
|
190
|
+
bytes memory data = instanceReader.getRiskInfo(riskId).data;
|
191
|
+
|
192
|
+
if (data.length > 0) {
|
193
|
+
FlightProduct.FlightRisk memory flightRisk = flightProduct.decodeFlightRiskData(data);
|
194
|
+
flightData = flightRisk.flightData.toString();
|
195
|
+
departureTimeLocal = flightRisk.departureTimeLocal;
|
196
|
+
arrivalTimeLocal = flightRisk.arrivalTimeLocal;
|
197
|
+
status = flightRisk.status;
|
198
|
+
delayMinutes = flightRisk.delayMinutes;
|
199
|
+
}
|
200
|
+
}
|
201
|
+
|
202
|
+
|
203
|
+
function toString(uint256 value) public pure returns (string memory) {
|
204
|
+
if (value == 0) {
|
205
|
+
return "0";
|
206
|
+
}
|
207
|
+
|
208
|
+
uint256 temp = value;
|
209
|
+
uint256 digits = 0;
|
210
|
+
while (temp != 0) {
|
211
|
+
digits++;
|
212
|
+
temp /= 10;
|
213
|
+
}
|
214
|
+
|
215
|
+
bytes memory buffer = new bytes(digits);
|
216
|
+
uint index = digits - 1;
|
217
|
+
|
218
|
+
temp = value;
|
219
|
+
while (temp != 0) {
|
220
|
+
buffer[index] = bytes1(uint8(48 + temp % 10));
|
221
|
+
temp /= 10;
|
222
|
+
|
223
|
+
if (index > 0) {
|
224
|
+
index--;
|
225
|
+
}
|
226
|
+
}
|
227
|
+
|
228
|
+
return string(buffer);
|
229
|
+
}
|
230
|
+
|
231
|
+
function _revert() private pure {
|
232
|
+
revert("FlightNft: Use GIF Chain NFT contract to interact with NFTs. See function getChainNft()");
|
233
|
+
}
|
234
|
+
}
|
@@ -3,14 +3,14 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
5
5
|
|
6
|
-
import {
|
6
|
+
import {ACTIVE, FAILED} from "../../type/StateId.sol";
|
7
7
|
import {NftId} from "../../type/NftId.sol";
|
8
8
|
import {BasicOracle} from "../../oracle/BasicOracle.sol";
|
9
9
|
import {RequestId} from "../../type/RequestId.sol";
|
10
|
-
import {LibRequestIdSet} from "../../type/RequestIdSet.sol";
|
11
10
|
import {RiskId} from "../../type/RiskId.sol";
|
11
|
+
import {StateId} from "../../type/StateId.sol";
|
12
12
|
import {Str} from "../../type/String.sol";
|
13
|
-
import {Timestamp} from "../../type/Timestamp.sol";
|
13
|
+
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
14
14
|
|
15
15
|
contract FlightOracle is
|
16
16
|
BasicOracle
|
@@ -32,9 +32,6 @@ contract FlightOracle is
|
|
32
32
|
event LogFlightOracleResponseSent(RequestId requestId, bytes1 status, int256 delay);
|
33
33
|
event LogFlightOracleRequestCancelled(RequestId requestId);
|
34
34
|
|
35
|
-
// TODO decide if this variable should be moved to instance store
|
36
|
-
// if so it need to manage active requests by requestor nft id
|
37
|
-
LibRequestIdSet.Set internal _activeRequests;
|
38
35
|
|
39
36
|
|
40
37
|
constructor(
|
@@ -98,74 +95,35 @@ contract FlightOracle is
|
|
98
95
|
|
99
96
|
// effects + interaction (via framework to receiving component)
|
100
97
|
_respond(requestId, responseData);
|
101
|
-
|
102
|
-
// TODO decide if the code below should be moved to GIF
|
103
|
-
// check callback result
|
104
|
-
bool requestFulfilled = _getInstanceReader().getRequestState(
|
105
|
-
requestId) == FULFILLED();
|
106
|
-
|
107
|
-
// remove from active requests when successful
|
108
|
-
if (requestFulfilled) {
|
109
|
-
LibRequestIdSet.remove(_activeRequests, requestId);
|
110
|
-
}
|
111
98
|
}
|
112
99
|
|
113
100
|
//--- view functions ----------------------------------------------------//
|
114
101
|
|
115
|
-
|
116
|
-
function activeRequests()
|
102
|
+
function getRequestState(RequestId requestId)
|
117
103
|
external
|
118
104
|
view
|
119
|
-
returns(
|
105
|
+
returns (
|
106
|
+
RiskId riskId,
|
107
|
+
string memory flightData,
|
108
|
+
StateId requestState,
|
109
|
+
bool readyForResponse,
|
110
|
+
bool waitingForResend
|
111
|
+
)
|
120
112
|
{
|
121
|
-
|
113
|
+
bytes memory requestData = _getInstanceReader().getRequestInfo(requestId).requestData;
|
114
|
+
Str fltData;
|
115
|
+
Timestamp departureTime;
|
116
|
+
(riskId, fltData, departureTime) = abi.decode(requestData, (RiskId, Str, Timestamp));
|
117
|
+
|
118
|
+
flightData = fltData.toString();
|
119
|
+
requestState = _getInstanceReader().getRequestState(requestId);
|
120
|
+
readyForResponse = requestState == ACTIVE() && TimestampLib.current() >= departureTime;
|
121
|
+
waitingForResend = requestState == FAILED();
|
122
122
|
}
|
123
123
|
|
124
124
|
|
125
|
-
// TODO decide if the code below should be moved to GIF
|
126
|
-
function getActiveRequest(uint256 idx)
|
127
|
-
external
|
128
|
-
view
|
129
|
-
returns(RequestId requestId)
|
130
|
-
{
|
131
|
-
return LibRequestIdSet.getElementAt(_activeRequests, idx);
|
132
|
-
}
|
133
|
-
|
134
125
|
function decodeFlightStatusRequestData(bytes memory data) external pure returns (FlightStatusRequest memory) {
|
135
126
|
return abi.decode(data, (FlightStatusRequest));
|
136
127
|
}
|
137
128
|
|
138
|
-
//--- internal functions ------------------------------------------------//
|
139
|
-
|
140
|
-
/// @dev use case specific handling of oracle requests
|
141
|
-
/// for now only log is emitted to verify that request has been received by oracle component
|
142
|
-
function _request(
|
143
|
-
RequestId requestId,
|
144
|
-
NftId requesterId,
|
145
|
-
bytes calldata requestData,
|
146
|
-
Timestamp expiryAt
|
147
|
-
)
|
148
|
-
internal
|
149
|
-
virtual override
|
150
|
-
{
|
151
|
-
FlightStatusRequest memory request = abi.decode(requestData, (FlightStatusRequest));
|
152
|
-
|
153
|
-
// TODO decide if the line below should be moved to GIF
|
154
|
-
LibRequestIdSet.add(_activeRequests, requestId);
|
155
|
-
emit LogFlightOracleRequestReceived(requestId, requesterId);
|
156
|
-
}
|
157
|
-
|
158
|
-
|
159
|
-
/// @dev use case specific handling of oracle requests
|
160
|
-
/// for now only log is emitted to verify that cancelling has been received by oracle component
|
161
|
-
function _cancel(
|
162
|
-
RequestId requestId
|
163
|
-
)
|
164
|
-
internal
|
165
|
-
virtual override
|
166
|
-
{
|
167
|
-
// TODO decide if the line below should be moved to GIF
|
168
|
-
LibRequestIdSet.remove(_activeRequests, requestId);
|
169
|
-
emit LogFlightOracleRequestCancelled(requestId);
|
170
|
-
}
|
171
129
|
}
|
@@ -8,7 +8,7 @@ import {IAccess} from "../../../contracts/authorization/IAccess.sol";
|
|
8
8
|
import {AccessAdminLib} from "../../authorization/AccessAdminLib.sol";
|
9
9
|
import {BasicOracleAuthorization} from "../../oracle/BasicOracleAuthorization.sol";
|
10
10
|
import {FlightOracle} from "./FlightOracle.sol";
|
11
|
-
import {RoleId, ADMIN_ROLE} from "../../../contracts/type/RoleId.sol";
|
11
|
+
import {RoleId, ADMIN_ROLE, PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
|
12
12
|
|
13
13
|
contract FlightOracleAuthorization
|
14
14
|
is BasicOracleAuthorization
|
@@ -48,6 +48,9 @@ contract FlightOracleAuthorization
|
|
48
48
|
|
49
49
|
functions = _authorizeForTarget(getMainTargetName(), STATUS_PROVIDER_ROLE);
|
50
50
|
_authorize(functions, FlightOracle.respondWithFlightStatus.selector, "respondWithFlightStatus");
|
51
|
+
|
52
|
+
// // authorize public role (additional authz via onlyOwner)
|
53
|
+
// functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
51
54
|
}
|
52
55
|
}
|
53
56
|
|
@@ -35,7 +35,7 @@ contract FlightPool is
|
|
35
35
|
maxBalanceAmount: AmountLib.max(),
|
36
36
|
isInterceptingBundleTransfers: false,
|
37
37
|
isProcessingConfirmedClaims: false,
|
38
|
-
isExternallyManaged:
|
38
|
+
isExternallyManaged: true,
|
39
39
|
isVerifyingApplications: false,
|
40
40
|
collateralizationLevel: UFixedLib.one(),
|
41
41
|
retentionLevel: UFixedLib.one()
|