@etherisc/gif-next 3.0.0-4e7f66e-983 → 3.0.0-5868866-882
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 +2 -2
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +2 -2
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +44 -56
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +145 -100
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- 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 +2 -2
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +2 -2
- 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/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +2 -2
- 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 +2 -2
- 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/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +372 -73
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +183 -28
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +82 -35
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +2 -2
- 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 +415 -497
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +83 -36
- 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/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +2 -2
- 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 +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +2 -2
- 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 +2 -2
- 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/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/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- 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 +102 -114
- 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 +93 -34
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +2 -2
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +2 -2
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
- 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/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- 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/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 +2 -2
- 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 +2 -2
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +2 -2
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- 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/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 +2 -2
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +2 -2
- 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 +2 -2
- 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 +2 -2
- 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/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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- 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 +2 -2
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +101 -113
- 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 +2 -2
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +110 -122
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +56 -62
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +2 -2
- 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 +2 -2
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +2 -2
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- 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 +4 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +633 -0
- 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/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/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/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- 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/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- 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 +2 -2
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +2 -2
- 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 +2 -2
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +2 -2
- 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 -2
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +6 -25
- package/contracts/authorization/AccessAdminLib.sol +20 -3
- package/contracts/examples/flight/FlightLib.sol +106 -80
- package/contracts/examples/flight/FlightOracle.sol +68 -9
- package/contracts/examples/flight/FlightOracleAuthorization.sol +28 -5
- package/contracts/examples/flight/FlightPool.sol +1 -1
- package/contracts/examples/flight/FlightProduct.sol +283 -240
- package/contracts/examples/flight/FlightProductAuthorization.sol +35 -10
- package/contracts/examples/flight/FlightProductManager.sol +49 -0
- package/contracts/instance/InstanceAdmin.sol +0 -1
- package/contracts/instance/InstanceReader.sol +16 -4
- package/contracts/oracle/BasicOracle.sol +1 -0
- package/contracts/oracle/Oracle.sol +2 -2
- package/contracts/product/PolicyServiceLib.sol +5 -3
- package/contracts/registry/RegistryAdmin.sol +7 -1
- package/contracts/registry/ReleaseAdmin.sol +8 -1
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
- package/contracts/shared/InstanceLinkedComponent.sol +2 -1
- package/package.json +1 -1
@@ -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,39 +19,30 @@ import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
|
18
19
|
|
19
20
|
library FlightLib {
|
20
21
|
|
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
|
+
|
35
|
+
function checkApplicationData(
|
22
36
|
FlightProduct flightProduct,
|
23
37
|
Str flightData,
|
24
38
|
Timestamp departureTime,
|
25
39
|
Timestamp arrivalTime,
|
26
|
-
Amount premiumAmount
|
27
|
-
uint256[6] memory statistics,
|
28
|
-
// signature fields
|
29
|
-
uint8 v,
|
30
|
-
bytes32 r,
|
31
|
-
bytes32 s
|
40
|
+
Amount premiumAmount
|
32
41
|
)
|
33
42
|
public
|
34
43
|
view
|
35
44
|
{
|
36
45
|
_checkApplicationData(flightProduct, premiumAmount, arrivalTime, departureTime);
|
37
|
-
|
38
|
-
(
|
39
|
-
address actualSigner,,
|
40
|
-
bool success
|
41
|
-
) = flightProduct.getFlightMessageVerifier().verifyRatingsHash(
|
42
|
-
flightData,
|
43
|
-
departureTime,
|
44
|
-
arrivalTime,
|
45
|
-
premiumAmount,
|
46
|
-
statistics,
|
47
|
-
v, r, s);
|
48
|
-
|
49
|
-
if (!success) {
|
50
|
-
revert FlightProduct.ErrorApplicationDataSignatureMismatch(
|
51
|
-
flightProduct.getFlightMessageVerifier().getExpectedSigner(),
|
52
|
-
actualSigner);
|
53
|
-
}
|
54
46
|
}
|
55
47
|
|
56
48
|
|
@@ -63,62 +55,49 @@ library FlightLib {
|
|
63
55
|
internal
|
64
56
|
view
|
65
57
|
{
|
58
|
+
bool testMode = flightProduct.isTestMode();
|
59
|
+
|
66
60
|
// solhint-disable
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
61
|
+
if (premiumAmount < flightProduct.MIN_PREMIUM()) {
|
62
|
+
revert ErrorFlightProductPremiumAmountTooSmall(premiumAmount, flightProduct.MIN_PREMIUM());
|
63
|
+
}
|
64
|
+
if (premiumAmount > flightProduct.MAX_PREMIUM()) {
|
65
|
+
revert ErrorFlightProductPremiumAmountTooLarge(premiumAmount, flightProduct.MAX_PREMIUM());
|
66
|
+
}
|
67
|
+
if (arrivalTime <= departureTime) {
|
68
|
+
revert ErrorFlightProductArrivalBeforeDepartureTime(departureTime, arrivalTime);
|
69
|
+
}
|
70
|
+
if (arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) {
|
71
|
+
revert ErrorFlightProductArrivalAfterMaxFlightDuration(arrivalTime, departureTime, flightProduct.MAX_FLIGHT_DURATION());
|
72
|
+
}
|
73
|
+
|
74
|
+
// test mode allows the creation for policies that are outside restricted policy creation times
|
75
|
+
if (!testMode && departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) {
|
76
|
+
revert ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MIN_TIME_BEFORE_DEPARTURE());
|
77
|
+
}
|
78
|
+
if (!testMode && departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) {
|
79
|
+
revert ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MAX_TIME_BEFORE_DEPARTURE());
|
80
|
+
}
|
81
81
|
// solhint-enable
|
82
82
|
}
|
83
83
|
|
84
84
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
// // Validate input parameters
|
98
|
-
// if (premium < flightProduct.MIN_PREMIUM()) { errors = errors | (uint256(1) << 0); }
|
99
|
-
// if (premium > flightProduct.MAX_PREMIUM()) { errors = errors | (uint256(1) << 1); }
|
100
|
-
// if (arrivalTime < departureTime) { errors = errors | (uint256(1) << 2); }
|
101
|
-
// if (arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) { errors = errors | (uint256(1) << 3); }
|
102
|
-
// if (departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) { errors = errors | (uint256(1) << 4); }
|
103
|
-
// if (departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) { errors = errors | (uint256(1) << 5); }
|
104
|
-
|
105
|
-
// (, bool exists, FlightProduct.FlightRisk memory flightRisk) = getFlightRisk(
|
106
|
-
// flightProduct.getInstanceReader(), flightProduct.getNftId(), carrierFlightNumber, departureTime, arrivalTime);
|
107
|
-
|
108
|
-
// if (exists) {
|
109
|
-
// Amount sumInsured = AmountLib.toAmount(premium.toInt() * flightRisk.premiumMultiplier);
|
110
|
-
// if (flightRisk.sumOfSumInsuredAmounts + sumInsured > flightProduct.MAX_TOTAL_PAYOUT()) {
|
111
|
-
// errors = errors | (uint256(1) << 6);
|
112
|
-
// }
|
113
|
-
// }
|
114
|
-
|
115
|
-
// return errors;
|
116
|
-
// }
|
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
|
+
}
|
117
97
|
|
118
98
|
|
119
99
|
/// @dev calculates payout option based on flight status and delay minutes.
|
120
100
|
/// Is not a view function as it emits log evens in case of unexpected status.
|
121
|
-
// TODO decide if reverts instead of log events could work too (and convert the function into a view function)
|
122
101
|
function checkAndGetPayoutOption(
|
123
102
|
RequestId requestId,
|
124
103
|
RiskId riskId,
|
@@ -133,13 +112,13 @@ library FlightLib {
|
|
133
112
|
|
134
113
|
// check status
|
135
114
|
if (status != "L" && status != "A" && status != "C" && status != "D") {
|
136
|
-
emit
|
115
|
+
emit LogFlightProductErrorUnprocessableStatus(requestId, riskId, status);
|
137
116
|
return payoutOption;
|
138
117
|
}
|
139
118
|
|
140
119
|
if (status == "A") {
|
141
120
|
// todo: active, reschedule oracle call + 45 min
|
142
|
-
emit
|
121
|
+
emit LogFlightProductErrorUnexpectedStatus(requestId, riskId, status, delayMinutes);
|
143
122
|
return payoutOption;
|
144
123
|
}
|
145
124
|
|
@@ -161,7 +140,9 @@ library FlightLib {
|
|
161
140
|
returns (uint256 weight)
|
162
141
|
{
|
163
142
|
// check we have enough observations
|
164
|
-
|
143
|
+
if (statistics[0] < flightProduct.MIN_OBSERVATIONS()) {
|
144
|
+
revert ErrorFlightProductNotEnoughObservations(statistics[0], flightProduct.MIN_OBSERVATIONS());
|
145
|
+
}
|
165
146
|
|
166
147
|
weight = 0;
|
167
148
|
for (uint256 i = 1; i < 6; i++) {
|
@@ -192,8 +173,12 @@ library FlightLib {
|
|
192
173
|
Amount sumInsuredAmount // simply the max of payoutAmounts
|
193
174
|
)
|
194
175
|
{
|
195
|
-
|
196
|
-
|
176
|
+
if (premium < flightProduct.MIN_PREMIUM()) {
|
177
|
+
revert ErrorFlightProductPremiumAmountTooSmall(premium, flightProduct.MIN_PREMIUM());
|
178
|
+
}
|
179
|
+
if (premium > flightProduct.MAX_PREMIUM()) {
|
180
|
+
revert ErrorFlightProductPremiumAmountTooLarge(premium, flightProduct.MAX_PREMIUM());
|
181
|
+
}
|
197
182
|
|
198
183
|
sumInsuredAmount = AmountLib.zero();
|
199
184
|
weight = calculateWeight(flightProduct, statistics);
|
@@ -211,13 +196,43 @@ library FlightLib {
|
|
211
196
|
}
|
212
197
|
|
213
198
|
|
199
|
+
function getPayoutOption(
|
200
|
+
InstanceReader reader,
|
201
|
+
NftId productNftId,
|
202
|
+
RiskId riskId
|
203
|
+
)
|
204
|
+
public
|
205
|
+
view
|
206
|
+
returns (
|
207
|
+
bool exists,
|
208
|
+
bool statusAvailable,
|
209
|
+
uint8 payoutOption
|
210
|
+
)
|
211
|
+
{
|
212
|
+
FlightProduct.FlightRisk memory flightRisk;
|
213
|
+
(exists, flightRisk) = getFlightRisk(
|
214
|
+
reader,
|
215
|
+
productNftId,
|
216
|
+
riskId,
|
217
|
+
false);
|
218
|
+
|
219
|
+
statusAvailable = flightRisk.statusUpdatedAt.gtz();
|
220
|
+
payoutOption = flightRisk.payoutOption;
|
221
|
+
}
|
222
|
+
|
223
|
+
|
214
224
|
function getPayoutAmount(
|
215
225
|
bytes memory applicationData,
|
216
226
|
uint8 payoutOption
|
217
227
|
)
|
218
228
|
public
|
229
|
+
pure
|
219
230
|
returns (Amount payoutAmount)
|
220
231
|
{
|
232
|
+
if (payoutOption == type(uint8).max) {
|
233
|
+
return AmountLib.zero();
|
234
|
+
}
|
235
|
+
|
221
236
|
// retrieve payout amounts from application data
|
222
237
|
(, Amount[5] memory payoutAmounts) = abi.decode(
|
223
238
|
applicationData, (Amount, Amount[5]));
|
@@ -232,7 +247,9 @@ library FlightLib {
|
|
232
247
|
NftId productNftId,
|
233
248
|
Str flightData,
|
234
249
|
Timestamp departureTime,
|
235
|
-
|
250
|
+
string memory departureTimeLocal,
|
251
|
+
Timestamp arrivalTime,
|
252
|
+
string memory arrivalTimeLocal
|
236
253
|
)
|
237
254
|
public
|
238
255
|
view
|
@@ -243,17 +260,21 @@ library FlightLib {
|
|
243
260
|
)
|
244
261
|
{
|
245
262
|
riskId = getRiskId(productNftId, flightData);
|
246
|
-
(exists, flightRisk) = getFlightRisk(reader, productNftId, riskId);
|
263
|
+
(exists, flightRisk) = getFlightRisk(reader, productNftId, riskId, false);
|
247
264
|
|
248
265
|
// create new risk if not existing
|
249
266
|
if (!exists) {
|
250
267
|
flightRisk = FlightProduct.FlightRisk({
|
251
268
|
flightData: flightData,
|
252
269
|
departureTime: departureTime,
|
270
|
+
departureTimeLocal: departureTimeLocal,
|
253
271
|
arrivalTime: arrivalTime,
|
272
|
+
arrivalTimeLocal: arrivalTimeLocal,
|
254
273
|
sumOfSumInsuredAmounts: AmountLib.toAmount(0),
|
255
274
|
status: bytes1(0),
|
256
|
-
delayMinutes: 0
|
275
|
+
delayMinutes: 0,
|
276
|
+
payoutOption: uint8(0),
|
277
|
+
statusUpdatedAt: TimestampLib.zero()});
|
257
278
|
}
|
258
279
|
}
|
259
280
|
|
@@ -261,7 +282,8 @@ library FlightLib {
|
|
261
282
|
function getFlightRisk(
|
262
283
|
InstanceReader reader,
|
263
284
|
NftId productNftId,
|
264
|
-
RiskId riskId
|
285
|
+
RiskId riskId,
|
286
|
+
bool requireRiskExists
|
265
287
|
)
|
266
288
|
public
|
267
289
|
view
|
@@ -273,6 +295,10 @@ library FlightLib {
|
|
273
295
|
// check if risk exists
|
274
296
|
exists = reader.isProductRisk(productNftId, riskId);
|
275
297
|
|
298
|
+
if (!exists && requireRiskExists) {
|
299
|
+
revert ErrorFlightProductRiskInvalid(riskId);
|
300
|
+
}
|
301
|
+
|
276
302
|
// get risk data if risk exists
|
277
303
|
if (exists) {
|
278
304
|
flightRisk = abi.decode(
|
@@ -3,14 +3,15 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
5
5
|
|
6
|
-
import {FULFILLED} from "../../type/StateId.sol";
|
6
|
+
import {ACTIVE, FULFILLED, 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
10
|
import {LibRequestIdSet} from "../../type/RequestIdSet.sol";
|
11
11
|
import {RiskId} from "../../type/RiskId.sol";
|
12
|
+
import {StateId} from "../../type/StateId.sol";
|
12
13
|
import {Str} from "../../type/String.sol";
|
13
|
-
import {Timestamp} from "../../type/Timestamp.sol";
|
14
|
+
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
14
15
|
|
15
16
|
contract FlightOracle is
|
16
17
|
BasicOracle
|
@@ -100,14 +101,17 @@ contract FlightOracle is
|
|
100
101
|
_respond(requestId, responseData);
|
101
102
|
|
102
103
|
// TODO decide if the code below should be moved to GIF
|
103
|
-
|
104
|
-
|
105
|
-
requestId) == FULFILLED();
|
104
|
+
_updateRequestState(requestId);
|
105
|
+
}
|
106
106
|
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
107
|
+
|
108
|
+
function updateRequestState(
|
109
|
+
RequestId requestId
|
110
|
+
)
|
111
|
+
external
|
112
|
+
restricted()
|
113
|
+
{
|
114
|
+
_updateRequestState(requestId);
|
111
115
|
}
|
112
116
|
|
113
117
|
//--- view functions ----------------------------------------------------//
|
@@ -131,8 +135,63 @@ contract FlightOracle is
|
|
131
135
|
return LibRequestIdSet.getElementAt(_activeRequests, idx);
|
132
136
|
}
|
133
137
|
|
138
|
+
|
139
|
+
function isActiveRequest(RequestId requestId)
|
140
|
+
external
|
141
|
+
view
|
142
|
+
returns(bool isActive)
|
143
|
+
{
|
144
|
+
return LibRequestIdSet.contains(_activeRequests, requestId);
|
145
|
+
}
|
146
|
+
|
147
|
+
|
148
|
+
function getRequestState(RequestId requestId)
|
149
|
+
external
|
150
|
+
view
|
151
|
+
returns (
|
152
|
+
RiskId riskId,
|
153
|
+
string memory flightData,
|
154
|
+
StateId requestState,
|
155
|
+
bool readyForResponse,
|
156
|
+
bool waitingForResend
|
157
|
+
)
|
158
|
+
{
|
159
|
+
bytes memory requestData = _getInstanceReader().getRequestInfo(requestId).requestData;
|
160
|
+
Str fltData;
|
161
|
+
Timestamp departureTime;
|
162
|
+
(riskId, fltData, departureTime) = abi.decode(requestData, (RiskId, Str, Timestamp));
|
163
|
+
|
164
|
+
flightData = fltData.toString();
|
165
|
+
requestState = _getInstanceReader().getRequestState(requestId);
|
166
|
+
readyForResponse = requestState == ACTIVE() && TimestampLib.current() >= departureTime;
|
167
|
+
waitingForResend = requestState == FAILED();
|
168
|
+
}
|
169
|
+
|
170
|
+
|
171
|
+
function decodeFlightStatusRequestData(bytes memory data) external pure returns (FlightStatusRequest memory) {
|
172
|
+
return abi.decode(data, (FlightStatusRequest));
|
173
|
+
}
|
174
|
+
|
134
175
|
//--- internal functions ------------------------------------------------//
|
135
176
|
|
177
|
+
|
178
|
+
// TODO decide if the code below should be moved to GIF
|
179
|
+
// check callback result
|
180
|
+
function _updateRequestState(
|
181
|
+
RequestId requestId
|
182
|
+
)
|
183
|
+
internal
|
184
|
+
{
|
185
|
+
bool requestFulfilled = _getInstanceReader().getRequestState(
|
186
|
+
requestId) == FULFILLED();
|
187
|
+
|
188
|
+
// remove from active requests when successful
|
189
|
+
if (requestFulfilled && LibRequestIdSet.contains(_activeRequests, requestId)) {
|
190
|
+
LibRequestIdSet.remove(_activeRequests, requestId);
|
191
|
+
}
|
192
|
+
}
|
193
|
+
|
194
|
+
|
136
195
|
/// @dev use case specific handling of oracle requests
|
137
196
|
/// for now only log is emitted to verify that request has been received by oracle component
|
138
197
|
function _request(
|
@@ -5,17 +5,38 @@ pragma solidity ^0.8.20;
|
|
5
5
|
|
6
6
|
import {IAccess} from "../../../contracts/authorization/IAccess.sol";
|
7
7
|
|
8
|
+
import {AccessAdminLib} from "../../authorization/AccessAdminLib.sol";
|
8
9
|
import {BasicOracleAuthorization} from "../../oracle/BasicOracleAuthorization.sol";
|
9
10
|
import {FlightOracle} from "./FlightOracle.sol";
|
10
|
-
import {PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
|
11
|
+
import {RoleId, ADMIN_ROLE, PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
|
11
12
|
|
12
13
|
contract FlightOracleAuthorization
|
13
14
|
is BasicOracleAuthorization
|
14
15
|
{
|
15
16
|
|
17
|
+
uint64 public constant STATUS_PROVIDER_ROLE_IDX = 2; // 2nd custom role for flight oracle
|
18
|
+
string public constant STATUS_PROVIDER_ROLE_NAME = "StatusProviderRole";
|
19
|
+
RoleId public STATUS_PROVIDER_ROLE;
|
20
|
+
|
16
21
|
constructor(string memory oracleName, string memory commitHash)
|
17
22
|
BasicOracleAuthorization(oracleName, commitHash)
|
18
|
-
{}
|
23
|
+
{ }
|
24
|
+
|
25
|
+
|
26
|
+
function _setupRoles()
|
27
|
+
internal
|
28
|
+
override
|
29
|
+
{
|
30
|
+
STATUS_PROVIDER_ROLE = AccessAdminLib.getCustomRoleId(STATUS_PROVIDER_ROLE_IDX);
|
31
|
+
|
32
|
+
_addRole(
|
33
|
+
STATUS_PROVIDER_ROLE,
|
34
|
+
AccessAdminLib.roleInfo(
|
35
|
+
ADMIN_ROLE(),
|
36
|
+
TargetType.Custom,
|
37
|
+
1, // max member count special case: instance nft owner is sole role owner
|
38
|
+
STATUS_PROVIDER_ROLE_NAME));
|
39
|
+
}
|
19
40
|
|
20
41
|
|
21
42
|
function _setupTargetAuthorizations()
|
@@ -25,10 +46,12 @@ contract FlightOracleAuthorization
|
|
25
46
|
super._setupTargetAuthorizations();
|
26
47
|
IAccess.FunctionInfo[] storage functions;
|
27
48
|
|
28
|
-
|
29
|
-
// authorize public role (also protected by onlyOwner)
|
30
|
-
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
49
|
+
functions = _authorizeForTarget(getMainTargetName(), STATUS_PROVIDER_ROLE);
|
31
50
|
_authorize(functions, FlightOracle.respondWithFlightStatus.selector, "respondWithFlightStatus");
|
51
|
+
|
52
|
+
// authorize public role (additional authz via onlyOwner)
|
53
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
54
|
+
_authorize(functions, FlightOracle.updateRequestState.selector, "updateRequestState");
|
32
55
|
}
|
33
56
|
}
|
34
57
|
|
@@ -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()
|