@etherisc/gif-next 3.0.0-f90c901-018 → 3.0.0-fbbe3fc-042
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 +1 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +72 -139
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +116 -110
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +33 -72
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +70 -105
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +150 -126
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +65 -20
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
- 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 +10 -20
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +75 -126
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -72
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +139 -198
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -140
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +56 -84
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -71
- 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 +104 -166
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +138 -200
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +728 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1234 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2497 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +102 -159
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +106 -163
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +120 -177
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +114 -171
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
- 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 +54 -49
- 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/IInstance.sol/IInstance.json +26 -78
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +44 -83
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +51 -145
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +151 -185
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +203 -77
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +75 -138
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -104
- 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 +58 -53
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.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 +8 -3
- 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 +81 -132
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
- 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 +66 -94
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +83 -80
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -82
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +148 -149
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -111
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -88
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +117 -176
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +139 -129
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -71
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +72 -100
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +86 -94
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -88
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +247 -24
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +165 -233
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +130 -140
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +63 -138
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +112 -110
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +57 -72
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +115 -182
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +138 -132
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +32 -71
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +32 -71
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +64 -82
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -82
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +56 -84
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +36 -75
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +127 -173
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -122
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +94 -161
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +57 -72
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -146
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +107 -109
- 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/IRegistry.sol/IRegistry.json +56 -155
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +216 -202
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -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 +96 -314
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +146 -179
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -57
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +244 -285
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +110 -115
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +154 -175
- 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 +187 -135
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +29 -13
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +39 -84
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +320 -164
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -115
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- 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/IComponent.sol/IComponent.json +38 -96
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +226 -82
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +56 -84
- 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 +28 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +25 -77
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +32 -71
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -72
- 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 +34 -15
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -76
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +31 -70
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -42
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -30
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +56 -101
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +36 -75
- 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 +109 -170
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -26
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +124 -112
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +65 -132
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -105
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +204 -212
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +19 -27
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
- 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/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/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- 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/VersionLib.json +10 -10
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +86 -63
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
- package/contracts/accounting/AccountingService.sol +6 -5
- package/contracts/accounting/AccountingServiceManager.sol +6 -4
- package/contracts/accounting/IAccountingService.sol +1 -1
- package/contracts/authorization/AccessAdmin.sol +43 -45
- package/contracts/authorization/AccessAdminLib.sol +29 -15
- package/contracts/authorization/AccessManagerCloneable.sol +48 -24
- package/contracts/authorization/Authorization.sol +2 -2
- package/contracts/authorization/IAccessAdmin.sol +3 -3
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistribution.sol +2 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
- package/contracts/distribution/Distribution.sol +2 -0
- package/contracts/distribution/DistributionService.sol +20 -24
- package/contracts/distribution/DistributionServiceManager.sol +6 -4
- package/contracts/examples/fire/FirePool.sol +4 -0
- package/contracts/examples/fire/FireProduct.sol +4 -0
- package/contracts/examples/flight/FlightLib.sol +300 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightOracle.sol +171 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +53 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +685 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +69 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
- package/contracts/instance/IInstance.sol +1 -1
- package/contracts/instance/Instance.sol +12 -8
- package/contracts/instance/InstanceAdmin.sol +17 -11
- package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
- package/contracts/instance/InstanceReader.sol +46 -18
- package/contracts/instance/InstanceService.sol +20 -18
- package/contracts/instance/InstanceServiceManager.sol +6 -4
- package/contracts/instance/base/Cloneable.sol +10 -4
- package/contracts/instance/base/ObjectSet.sol +2 -2
- package/contracts/oracle/BasicOracle.sol +2 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
- package/contracts/oracle/IOracleService.sol +16 -12
- package/contracts/oracle/Oracle.sol +4 -3
- package/contracts/oracle/OracleService.sol +67 -37
- package/contracts/oracle/OracleServiceManager.sol +6 -4
- package/contracts/pool/BasicPool.sol +4 -2
- package/contracts/pool/BasicPoolAuthorization.sol +4 -5
- package/contracts/pool/BundleService.sol +19 -25
- package/contracts/pool/BundleServiceManager.sol +7 -5
- package/contracts/pool/IPoolService.sol +6 -5
- package/contracts/pool/Pool.sol +3 -1
- package/contracts/pool/PoolLib.sol +102 -5
- package/contracts/pool/PoolService.sol +101 -67
- package/contracts/pool/PoolServiceManager.sol +6 -4
- package/contracts/product/ApplicationService.sol +34 -13
- package/contracts/product/ApplicationServiceManager.sol +6 -4
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +7 -7
- package/contracts/product/ClaimService.sol +34 -10
- package/contracts/product/ClaimServiceManager.sol +7 -5
- package/contracts/product/IPolicyService.sol +1 -0
- package/contracts/product/PolicyService.sol +57 -44
- package/contracts/product/PolicyServiceManager.sol +6 -4
- package/contracts/product/PricingService.sol +8 -7
- package/contracts/product/PricingServiceManager.sol +6 -4
- package/contracts/product/Product.sol +2 -0
- package/contracts/product/RiskService.sol +40 -8
- package/contracts/product/RiskServiceManager.sol +6 -4
- package/contracts/registry/IRegistry.sol +14 -20
- package/contracts/registry/IRegistryService.sol +14 -10
- package/contracts/registry/IRelease.sol +3 -0
- package/contracts/registry/Registry.sol +78 -124
- package/contracts/registry/RegistryAdmin.sol +29 -12
- package/contracts/registry/RegistryAuthorization.sol +3 -4
- package/contracts/registry/RegistryService.sol +82 -99
- package/contracts/registry/RegistryServiceManager.sol +11 -4
- package/contracts/registry/ReleaseAdmin.sol +23 -9
- package/contracts/registry/ReleaseRegistry.sol +74 -64
- package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
- package/contracts/registry/TokenRegistry.sol +15 -6
- package/contracts/shared/Component.sol +22 -27
- package/contracts/shared/ComponentService.sol +130 -45
- package/contracts/shared/ComponentServiceManager.sol +7 -5
- package/contracts/shared/ContractLib.sol +93 -359
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +3 -5
- package/contracts/shared/IComponentService.sol +14 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +3 -14
- package/contracts/shared/IRegistryLinked.sol +3 -1
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +130 -39
- package/contracts/shared/NftOwnable.sol +22 -9
- package/contracts/shared/PolicyHolder.sol +4 -2
- package/contracts/shared/Registerable.sol +20 -37
- package/contracts/shared/RegistryLinked.sol +23 -4
- package/contracts/shared/Service.sol +9 -8
- package/contracts/shared/TokenHandler.sol +1 -4
- package/contracts/staking/IStaking.sol +2 -2
- package/contracts/staking/Staking.sol +33 -28
- package/contracts/staking/StakingLib.sol +1 -3
- package/contracts/staking/StakingManager.sol +6 -3
- package/contracts/staking/StakingReader.sol +17 -9
- package/contracts/staking/StakingService.sol +13 -16
- package/contracts/staking/StakingServiceManager.sol +8 -4
- package/contracts/staking/StakingStore.sol +8 -8
- package/contracts/staking/TargetHandler.sol +5 -4
- package/contracts/type/ObjectType.sol +2 -31
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/String.sol +30 -0
- package/contracts/type/Timestamp.sol +10 -1
- package/contracts/type/Version.sol +16 -15
- package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
- package/contracts/upgradeability/ProxyManager.sol +54 -46
- package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
- package/package.json +2 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
- package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
- package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
- package/contracts/shared/IVersionable.sol +0 -19
- package/contracts/shared/Versionable.sol +0 -47
@@ -20,6 +20,8 @@ import {KEEP_STATE} from "../type/StateId.sol";
|
|
20
20
|
import {ObjectType, ACCOUNTING, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
|
21
21
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
22
22
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
23
|
+
// TODO PoolLib feels wrong, should likely go in a component type independent lib
|
24
|
+
import {PoolLib} from "../pool/PoolLib.sol";
|
23
25
|
import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
|
24
26
|
import {Seconds} from "../type/Seconds.sol";
|
25
27
|
import {Service} from "../shared/Service.sol";
|
@@ -42,13 +44,14 @@ contract DistributionService is
|
|
42
44
|
)
|
43
45
|
internal
|
44
46
|
virtual override
|
45
|
-
|
47
|
+
initializer()
|
46
48
|
{
|
47
49
|
(
|
48
|
-
address authority
|
49
|
-
|
50
|
+
address authority,
|
51
|
+
address registry
|
52
|
+
) = abi.decode(data, (address, address));
|
50
53
|
|
51
|
-
__Service_init(authority, owner);
|
54
|
+
__Service_init(authority, registry, owner);
|
52
55
|
|
53
56
|
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
54
57
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
@@ -78,7 +81,7 @@ contract DistributionService is
|
|
78
81
|
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
79
82
|
|
80
83
|
{
|
81
|
-
NftId productNftId =
|
84
|
+
NftId productNftId = getRegistry().getParentNftId(distributionNftId);
|
82
85
|
IComponents.FeeInfo memory feeInfo = instance.getInstanceReader().getFeeInfo(productNftId);
|
83
86
|
|
84
87
|
UFixed variableDistributionFees = feeInfo.distributionFee.fractionalFee;
|
@@ -131,12 +134,11 @@ contract DistributionService is
|
|
131
134
|
NftIdLib.zero(),
|
132
135
|
distributionNftId,
|
133
136
|
DISTRIBUTOR(),
|
134
|
-
getRelease(),
|
135
137
|
true, // intercepting property for bundles is defined on pool
|
136
|
-
address(0)
|
137
|
-
|
138
|
-
|
139
|
-
|
138
|
+
address(0),
|
139
|
+
distributor,
|
140
|
+
""
|
141
|
+
));
|
140
142
|
|
141
143
|
IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo({
|
142
144
|
distributorType: distributorType,
|
@@ -195,11 +197,9 @@ contract DistributionService is
|
|
195
197
|
revert ErrorDistributionServiceExpirationInvalid(expiryAt);
|
196
198
|
}
|
197
199
|
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
revert ErrorDistributionServiceDistributorDistributionMismatch(distributorNftId, distributorDistributionNftId, distributionNftId);
|
202
|
-
}
|
200
|
+
NftId distributorDistributionNftId = getRegistry().getParentNftId(distributorNftId);
|
201
|
+
if (distributorDistributionNftId != distributionNftId) {
|
202
|
+
revert ErrorDistributionServiceDistributorDistributionMismatch(distributorNftId, distributorDistributionNftId, distributionNftId);
|
203
203
|
}
|
204
204
|
|
205
205
|
{
|
@@ -251,7 +251,7 @@ contract DistributionService is
|
|
251
251
|
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
252
252
|
{
|
253
253
|
if (referralIsValid(distributionNftId, referralId)) {
|
254
|
-
IInstance instance = IInstance(ContractLib.getInstanceForComponent(distributionNftId));
|
254
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(getRegistry(), distributionNftId));
|
255
255
|
|
256
256
|
// update book keeping for referral info
|
257
257
|
IDistribution.ReferralInfo memory referralInfo = instance.getInstanceReader().getReferralInfo(referralId);
|
@@ -272,7 +272,7 @@ contract DistributionService is
|
|
272
272
|
restricted()
|
273
273
|
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
274
274
|
{
|
275
|
-
IInstance instance = IInstance(ContractLib.getInstanceForComponent(distributionNftId));
|
275
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(getRegistry(), distributionNftId));
|
276
276
|
InstanceReader reader = instance.getInstanceReader();
|
277
277
|
InstanceStore store = instance.getInstanceStore();
|
278
278
|
|
@@ -340,7 +340,7 @@ contract DistributionService is
|
|
340
340
|
|
341
341
|
// transfer amount to distributor
|
342
342
|
{
|
343
|
-
address distributor =
|
343
|
+
address distributor = getRegistry().ownerOf(distributorNftId);
|
344
344
|
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.tokenHandler.TOKEN()), withdrawnAmount);
|
345
345
|
distributionInfo.tokenHandler.pushToken(distributor, withdrawnAmount);
|
346
346
|
}
|
@@ -357,7 +357,7 @@ contract DistributionService is
|
|
357
357
|
return false;
|
358
358
|
}
|
359
359
|
|
360
|
-
IInstance instance = IInstance(ContractLib.getInstanceForComponent(distributionNftId));
|
360
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(getRegistry(), distributionNftId));
|
361
361
|
IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
|
362
362
|
|
363
363
|
if (info.distributorNftId.eqz()) {
|
@@ -438,11 +438,7 @@ contract DistributionService is
|
|
438
438
|
IInstance instance
|
439
439
|
)
|
440
440
|
{
|
441
|
-
(
|
442
|
-
msg.sender,
|
443
|
-
DISTRIBUTION(),
|
444
|
-
getRelease(),
|
445
|
-
true);
|
441
|
+
return PoolLib.getAndVerifyActiveComponent(getRegistry(), msg.sender, DISTRIBUTION());
|
446
442
|
}
|
447
443
|
|
448
444
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
5
|
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {DistributionService} from "./DistributionService.sol";
|
7
7
|
|
@@ -12,17 +12,19 @@ contract DistributionServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with distribution service implementation and deploys instance
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
+
address registry,
|
15
16
|
bytes32 salt
|
16
17
|
)
|
17
18
|
{
|
18
19
|
DistributionService svc = new DistributionService{salt: salt}();
|
19
|
-
bytes memory data = abi.encode(authority);
|
20
|
-
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
21
23
|
address(svc),
|
22
24
|
data,
|
23
25
|
salt);
|
24
26
|
|
25
|
-
_distributionService = DistributionService(address(
|
27
|
+
_distributionService = DistributionService(address(versionable));
|
26
28
|
}
|
27
29
|
|
28
30
|
//--- view functions ----------------------------------------------------//
|
@@ -16,6 +16,7 @@ contract FirePool is
|
|
16
16
|
BasicPool
|
17
17
|
{
|
18
18
|
constructor(
|
19
|
+
address registry,
|
19
20
|
NftId fireProductNftId,
|
20
21
|
string memory componentName,
|
21
22
|
IAuthorization authorization
|
@@ -23,6 +24,7 @@ contract FirePool is
|
|
23
24
|
{
|
24
25
|
address initialOwner = msg.sender;
|
25
26
|
_intialize(
|
27
|
+
registry,
|
26
28
|
fireProductNftId,
|
27
29
|
componentName,
|
28
30
|
IComponents.PoolInfo({
|
@@ -39,6 +41,7 @@ contract FirePool is
|
|
39
41
|
}
|
40
42
|
|
41
43
|
function _intialize(
|
44
|
+
address registry,
|
42
45
|
NftId fireProductNftId,
|
43
46
|
string memory componentName,
|
44
47
|
IComponents.PoolInfo memory poolInfo,
|
@@ -49,6 +52,7 @@ contract FirePool is
|
|
49
52
|
initializer
|
50
53
|
{
|
51
54
|
_initializeBasicPool(
|
55
|
+
registry,
|
52
56
|
fireProductNftId,
|
53
57
|
componentName,
|
54
58
|
poolInfo,
|
@@ -65,6 +65,7 @@ contract FireProduct is
|
|
65
65
|
mapping(uint256 fireId => mapping (NftId policyId => bool claimed)) private _claimed;
|
66
66
|
|
67
67
|
constructor(
|
68
|
+
address registry,
|
68
69
|
NftId instanceNftid,
|
69
70
|
string memory componentName,
|
70
71
|
IAuthorization authorization
|
@@ -73,6 +74,7 @@ contract FireProduct is
|
|
73
74
|
address initialOwner = msg.sender;
|
74
75
|
|
75
76
|
_initialize(
|
77
|
+
registry,
|
76
78
|
instanceNftid,
|
77
79
|
componentName,
|
78
80
|
authorization,
|
@@ -80,6 +82,7 @@ contract FireProduct is
|
|
80
82
|
}
|
81
83
|
|
82
84
|
function _initialize(
|
85
|
+
address registry,
|
83
86
|
NftId instanceNftId,
|
84
87
|
string memory componentName,
|
85
88
|
IAuthorization authorization,
|
@@ -89,6 +92,7 @@ contract FireProduct is
|
|
89
92
|
initializer
|
90
93
|
{
|
91
94
|
_initializeBasicProduct(
|
95
|
+
registry,
|
92
96
|
instanceNftId,
|
93
97
|
componentName,
|
94
98
|
IComponents.ProductInfo({
|
@@ -0,0 +1,300 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IPolicy} from "../../instance/module/IPolicy.sol";
|
5
|
+
import {IPolicyService} from "../../product/IPolicyService.sol";
|
6
|
+
|
7
|
+
import {Amount, AmountLib} from "../../type/Amount.sol";
|
8
|
+
import {FlightMessageVerifier} from "./FlightMessageVerifier.sol";
|
9
|
+
import {FlightProduct} from "./FlightProduct.sol";
|
10
|
+
import {InstanceReader} from "../../instance/InstanceReader.sol";
|
11
|
+
import {NftId} from "../../type/NftId.sol";
|
12
|
+
import {RequestId} from "../../type/RequestId.sol";
|
13
|
+
import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
|
14
|
+
import {StateId} from "../../type/StateId.sol";
|
15
|
+
import {Str} from "../../type/String.sol";
|
16
|
+
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
17
|
+
|
18
|
+
|
19
|
+
library FlightLib {
|
20
|
+
|
21
|
+
function checkApplicationData(
|
22
|
+
FlightProduct flightProduct,
|
23
|
+
Str flightData,
|
24
|
+
Timestamp departureTime,
|
25
|
+
Timestamp arrivalTime,
|
26
|
+
Amount premiumAmount
|
27
|
+
)
|
28
|
+
public
|
29
|
+
view
|
30
|
+
{
|
31
|
+
_checkApplicationData(flightProduct, premiumAmount, arrivalTime, departureTime);
|
32
|
+
}
|
33
|
+
|
34
|
+
|
35
|
+
function _checkApplicationData(
|
36
|
+
FlightProduct flightProduct,
|
37
|
+
Amount premiumAmount,
|
38
|
+
Timestamp arrivalTime,
|
39
|
+
Timestamp departureTime
|
40
|
+
)
|
41
|
+
internal
|
42
|
+
view
|
43
|
+
{
|
44
|
+
bool testMode = flightProduct.isTestMode();
|
45
|
+
|
46
|
+
// solhint-disable
|
47
|
+
if (premiumAmount < flightProduct.MIN_PREMIUM()) {
|
48
|
+
revert FlightProduct.ErrorFlightProductPremiumAmountTooSmall(premiumAmount, flightProduct.MIN_PREMIUM());
|
49
|
+
}
|
50
|
+
if (premiumAmount > flightProduct.MAX_PREMIUM()) {
|
51
|
+
revert FlightProduct.ErrorFlightProductPremiumAmountTooLarge(premiumAmount, flightProduct.MAX_PREMIUM());
|
52
|
+
}
|
53
|
+
if (arrivalTime <= departureTime) {
|
54
|
+
revert FlightProduct.ErrorFlightProductArrivalBeforeDepartureTime(departureTime, arrivalTime);
|
55
|
+
}
|
56
|
+
|
57
|
+
// test mode allows the creation for policies that ore not time constrained
|
58
|
+
if (!testMode && arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) {
|
59
|
+
revert FlightProduct.ErrorFlightProductArrivalAfterMaxFlightDuration(arrivalTime, departureTime, flightProduct.MAX_FLIGHT_DURATION());
|
60
|
+
}
|
61
|
+
if (!testMode && departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) {
|
62
|
+
revert FlightProduct.ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MIN_TIME_BEFORE_DEPARTURE());
|
63
|
+
}
|
64
|
+
if (!testMode && departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) {
|
65
|
+
revert FlightProduct.ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MAX_TIME_BEFORE_DEPARTURE());
|
66
|
+
}
|
67
|
+
// solhint-enable
|
68
|
+
}
|
69
|
+
|
70
|
+
|
71
|
+
/// @dev calculates payout option based on flight status and delay minutes.
|
72
|
+
/// 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
|
+
function checkAndGetPayoutOption(
|
75
|
+
RequestId requestId,
|
76
|
+
RiskId riskId,
|
77
|
+
bytes1 status,
|
78
|
+
int256 delayMinutes
|
79
|
+
)
|
80
|
+
public
|
81
|
+
returns (uint8 payoutOption)
|
82
|
+
{
|
83
|
+
// default: no payout
|
84
|
+
payoutOption = type(uint8).max;
|
85
|
+
|
86
|
+
// check status
|
87
|
+
if (status != "L" && status != "A" && status != "C" && status != "D") {
|
88
|
+
emit FlightProduct.LogErrorUnprocessableStatus(requestId, riskId, status);
|
89
|
+
return payoutOption;
|
90
|
+
}
|
91
|
+
|
92
|
+
if (status == "A") {
|
93
|
+
// todo: active, reschedule oracle call + 45 min
|
94
|
+
emit FlightProduct.LogErrorUnexpectedStatus(requestId, riskId, status, delayMinutes);
|
95
|
+
return payoutOption;
|
96
|
+
}
|
97
|
+
|
98
|
+
// trigger payout if applicable
|
99
|
+
if (status == "C") { payoutOption = 3; }
|
100
|
+
else if (status == "D") { payoutOption = 4; }
|
101
|
+
else if (delayMinutes >= 15 && delayMinutes < 30) { payoutOption = 0; }
|
102
|
+
else if (delayMinutes >= 30 && delayMinutes < 45) { payoutOption = 1; }
|
103
|
+
else if (delayMinutes >= 45) { payoutOption = 2; }
|
104
|
+
}
|
105
|
+
|
106
|
+
|
107
|
+
function calculateWeight(
|
108
|
+
FlightProduct flightProduct,
|
109
|
+
uint256[6] memory statistics
|
110
|
+
)
|
111
|
+
public
|
112
|
+
view
|
113
|
+
returns (uint256 weight)
|
114
|
+
{
|
115
|
+
// check we have enough observations
|
116
|
+
if (statistics[0] < flightProduct.MIN_OBSERVATIONS()) {
|
117
|
+
revert FlightProduct.ErrorFlightProductNotEnoughObservations(statistics[0], flightProduct.MIN_OBSERVATIONS());
|
118
|
+
}
|
119
|
+
|
120
|
+
weight = 0;
|
121
|
+
for (uint256 i = 1; i < 6; i++) {
|
122
|
+
weight += flightProduct.WEIGHT_PATTERN(i) * statistics[i] * 10000 / statistics[0];
|
123
|
+
}
|
124
|
+
|
125
|
+
// To avoid div0 in the payout section, we have to make a minimal assumption on weight
|
126
|
+
if (weight == 0) {
|
127
|
+
weight = 100000 / statistics[0];
|
128
|
+
}
|
129
|
+
|
130
|
+
// TODO comment on intended effect
|
131
|
+
weight = (weight * (100 + flightProduct.MARGIN_PERCENT())) / 100;
|
132
|
+
}
|
133
|
+
|
134
|
+
|
135
|
+
// REMARK: each flight may get different payouts depending on the latest statics
|
136
|
+
function calculatePayoutAmounts(
|
137
|
+
FlightProduct flightProduct,
|
138
|
+
Amount premium,
|
139
|
+
uint256[6] memory statistics
|
140
|
+
)
|
141
|
+
public
|
142
|
+
view
|
143
|
+
returns (
|
144
|
+
uint256 weight,
|
145
|
+
Amount[5] memory payoutAmounts,
|
146
|
+
Amount sumInsuredAmount // simply the max of payoutAmounts
|
147
|
+
)
|
148
|
+
{
|
149
|
+
if (premium < flightProduct.MIN_PREMIUM()) {
|
150
|
+
revert FlightProduct.ErrorFlightProductPremiumAmountTooSmall(premium, flightProduct.MIN_PREMIUM());
|
151
|
+
}
|
152
|
+
if (premium > flightProduct.MAX_PREMIUM()) {
|
153
|
+
revert FlightProduct.ErrorFlightProductPremiumAmountTooLarge(premium, flightProduct.MAX_PREMIUM());
|
154
|
+
}
|
155
|
+
|
156
|
+
sumInsuredAmount = AmountLib.zero();
|
157
|
+
weight = calculateWeight(flightProduct, statistics);
|
158
|
+
|
159
|
+
for (uint256 i = 0; i < 5; i++) {
|
160
|
+
Amount payoutAmount = AmountLib.toAmount(
|
161
|
+
premium.toInt() * flightProduct.WEIGHT_PATTERN(i + 1) * 10000 / weight);
|
162
|
+
|
163
|
+
// cap payout and update sum insured if applicable
|
164
|
+
if (payoutAmount > flightProduct.MAX_PAYOUT()) { payoutAmount = flightProduct.MAX_PAYOUT(); }
|
165
|
+
if (payoutAmount > sumInsuredAmount) { sumInsuredAmount = payoutAmount; }
|
166
|
+
|
167
|
+
payoutAmounts[i] = payoutAmount;
|
168
|
+
}
|
169
|
+
}
|
170
|
+
|
171
|
+
|
172
|
+
function getPayoutOption(
|
173
|
+
InstanceReader reader,
|
174
|
+
NftId productNftId,
|
175
|
+
RiskId riskId
|
176
|
+
)
|
177
|
+
public
|
178
|
+
view
|
179
|
+
returns (
|
180
|
+
bool exists,
|
181
|
+
bool statusAvailable,
|
182
|
+
uint8 payoutOption
|
183
|
+
)
|
184
|
+
{
|
185
|
+
FlightProduct.FlightRisk memory flightRisk;
|
186
|
+
(exists, flightRisk) = getFlightRisk(
|
187
|
+
reader,
|
188
|
+
productNftId,
|
189
|
+
riskId);
|
190
|
+
|
191
|
+
statusAvailable = flightRisk.statusUpdatedAt.gtz();
|
192
|
+
payoutOption = flightRisk.payoutOption;
|
193
|
+
}
|
194
|
+
|
195
|
+
|
196
|
+
function getPayoutAmount(
|
197
|
+
bytes memory applicationData,
|
198
|
+
uint8 payoutOption
|
199
|
+
)
|
200
|
+
public
|
201
|
+
pure
|
202
|
+
returns (Amount payoutAmount)
|
203
|
+
{
|
204
|
+
// retrieve payout amounts from application data
|
205
|
+
(, Amount[5] memory payoutAmounts) = abi.decode(
|
206
|
+
applicationData, (Amount, Amount[5]));
|
207
|
+
|
208
|
+
// get payout amount for selected option
|
209
|
+
payoutAmount = payoutAmounts[payoutOption];
|
210
|
+
}
|
211
|
+
|
212
|
+
|
213
|
+
function getFlightRisk(
|
214
|
+
InstanceReader reader,
|
215
|
+
NftId productNftId,
|
216
|
+
Str flightData,
|
217
|
+
Timestamp departureTime,
|
218
|
+
string memory departureTimeLocal,
|
219
|
+
Timestamp arrivalTime,
|
220
|
+
string memory arrivalTimeLocal
|
221
|
+
)
|
222
|
+
public
|
223
|
+
view
|
224
|
+
returns (
|
225
|
+
RiskId riskId,
|
226
|
+
bool exists,
|
227
|
+
FlightProduct.FlightRisk memory flightRisk
|
228
|
+
)
|
229
|
+
{
|
230
|
+
riskId = getRiskId(productNftId, flightData);
|
231
|
+
(exists, flightRisk) = getFlightRisk(reader, productNftId, riskId);
|
232
|
+
|
233
|
+
// create new risk if not existing
|
234
|
+
if (!exists) {
|
235
|
+
flightRisk = FlightProduct.FlightRisk({
|
236
|
+
flightData: flightData,
|
237
|
+
departureTime: departureTime,
|
238
|
+
departureTimeLocal: departureTimeLocal,
|
239
|
+
arrivalTime: arrivalTime,
|
240
|
+
arrivalTimeLocal: arrivalTimeLocal,
|
241
|
+
sumOfSumInsuredAmounts: AmountLib.toAmount(0),
|
242
|
+
status: bytes1(0),
|
243
|
+
delayMinutes: 0,
|
244
|
+
payoutOption: uint8(0),
|
245
|
+
statusUpdatedAt: TimestampLib.zero()});
|
246
|
+
}
|
247
|
+
}
|
248
|
+
|
249
|
+
|
250
|
+
function getFlightRisk(
|
251
|
+
InstanceReader reader,
|
252
|
+
NftId productNftId,
|
253
|
+
RiskId riskId
|
254
|
+
)
|
255
|
+
public
|
256
|
+
view
|
257
|
+
returns (
|
258
|
+
bool exists,
|
259
|
+
FlightProduct.FlightRisk memory flightRisk
|
260
|
+
)
|
261
|
+
{
|
262
|
+
// check if risk exists
|
263
|
+
exists = reader.isProductRisk(productNftId, riskId);
|
264
|
+
|
265
|
+
// get risk data if risk exists
|
266
|
+
if (exists) {
|
267
|
+
flightRisk = abi.decode(
|
268
|
+
reader.getRiskInfo(riskId).data, (FlightProduct.FlightRisk));
|
269
|
+
}
|
270
|
+
}
|
271
|
+
|
272
|
+
|
273
|
+
function getRiskId(
|
274
|
+
NftId productNftId,
|
275
|
+
Str flightData
|
276
|
+
)
|
277
|
+
public
|
278
|
+
view
|
279
|
+
returns (RiskId riskId)
|
280
|
+
{
|
281
|
+
bytes32 riskKey = getRiskKey(flightData);
|
282
|
+
riskId = getRiskId(productNftId, riskKey);
|
283
|
+
}
|
284
|
+
|
285
|
+
|
286
|
+
function getRiskKey(
|
287
|
+
Str flightData
|
288
|
+
)
|
289
|
+
internal
|
290
|
+
pure
|
291
|
+
returns (bytes32 riskKey)
|
292
|
+
{
|
293
|
+
return keccak256(abi.encode(flightData));
|
294
|
+
}
|
295
|
+
|
296
|
+
|
297
|
+
function getRiskId(NftId productNftId, bytes32 riskKey) internal view returns (RiskId riskId) {
|
298
|
+
return RiskIdLib.toRiskId(productNftId, riskKey);
|
299
|
+
}
|
300
|
+
}
|
@@ -0,0 +1,128 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
|
5
|
+
import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol";
|
6
|
+
import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
|
7
|
+
|
8
|
+
|
9
|
+
import {Amount} from "../../type/Amount.sol";
|
10
|
+
import {Str} from "../../type/String.sol";
|
11
|
+
import {Timestamp} from "../../type/Timestamp.sol";
|
12
|
+
|
13
|
+
contract FlightMessageVerifier is
|
14
|
+
Ownable
|
15
|
+
{
|
16
|
+
|
17
|
+
error ErrorFlightMessageVerifierSignerZero();
|
18
|
+
error ErrorFlightMessageVerifierContractSignerNotSupported();
|
19
|
+
|
20
|
+
address private _expectedSigner;
|
21
|
+
|
22
|
+
|
23
|
+
constructor() Ownable(msg.sender) { }
|
24
|
+
|
25
|
+
|
26
|
+
function setExpectedSigner(address signer) external onlyOwner {
|
27
|
+
if (signer == address(0)) { revert ErrorFlightMessageVerifierSignerZero(); }
|
28
|
+
if (signer.code.length > 0) { revert ErrorFlightMessageVerifierContractSignerNotSupported(); }
|
29
|
+
_expectedSigner = signer;
|
30
|
+
}
|
31
|
+
|
32
|
+
|
33
|
+
function getExpectedSigner() external view returns(address) {
|
34
|
+
return _expectedSigner;
|
35
|
+
}
|
36
|
+
|
37
|
+
/// @dev creates digest hash based on application parameters
|
38
|
+
/// proposal:
|
39
|
+
/// use "LX 180 ZRH BKK 20241104" (23 chars, should be enough for all flights)
|
40
|
+
/// carriers, airports: https://www.iata.org/en/publications/directories/code-search/
|
41
|
+
/// flight numbers: https://en.wikipedia.org/wiki/Flight_number
|
42
|
+
/// instead of separate strings, coding/decoding done anyway off-chain
|
43
|
+
function getRatingsHash(
|
44
|
+
Str flightData,
|
45
|
+
Timestamp departureTime,
|
46
|
+
Timestamp arrivalTime,
|
47
|
+
Amount premiumAmount,
|
48
|
+
uint256[6] memory statistics
|
49
|
+
)
|
50
|
+
public
|
51
|
+
view
|
52
|
+
returns(bytes32)
|
53
|
+
{
|
54
|
+
return MessageHashUtils.toEthSignedMessageHash(
|
55
|
+
abi.encode(
|
56
|
+
flightData,
|
57
|
+
departureTime,
|
58
|
+
arrivalTime,
|
59
|
+
premiumAmount,
|
60
|
+
statistics));
|
61
|
+
}
|
62
|
+
|
63
|
+
|
64
|
+
function verifyRatingsHash(
|
65
|
+
Str flightData,
|
66
|
+
Timestamp departureTime,
|
67
|
+
Timestamp arrivalTime,
|
68
|
+
Amount premiumAmount,
|
69
|
+
uint256[6] memory statistics,
|
70
|
+
// bytes memory signature,
|
71
|
+
uint8 v,
|
72
|
+
bytes32 r,
|
73
|
+
bytes32 s
|
74
|
+
)
|
75
|
+
public
|
76
|
+
view
|
77
|
+
returns (
|
78
|
+
address actualSigner,
|
79
|
+
ECDSA.RecoverError errorStatus,
|
80
|
+
bool success
|
81
|
+
)
|
82
|
+
{
|
83
|
+
bytes32 messageHash = getRatingsHash(
|
84
|
+
flightData,
|
85
|
+
departureTime,
|
86
|
+
arrivalTime,
|
87
|
+
premiumAmount,
|
88
|
+
statistics);
|
89
|
+
|
90
|
+
(
|
91
|
+
actualSigner,
|
92
|
+
errorStatus,
|
93
|
+
) = ECDSA.tryRecover(messageHash, v, r, s);
|
94
|
+
|
95
|
+
success = (
|
96
|
+
errorStatus == ECDSA.RecoverError.NoError
|
97
|
+
&& actualSigner == _expectedSigner);
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
// TODO re-enable or cleanup
|
102
|
+
// function checkAndRegisterSignature (
|
103
|
+
// address policyHolder,
|
104
|
+
// address protectedWallet,
|
105
|
+
// uint256 protectedBalance,
|
106
|
+
// uint256 duration,
|
107
|
+
// uint256 bundleId,
|
108
|
+
// bytes32 signatureId,
|
109
|
+
// bytes calldata signature
|
110
|
+
// )
|
111
|
+
// external
|
112
|
+
// {
|
113
|
+
// bytes32 signatureHash = keccak256(abi.encode(signature));
|
114
|
+
// require(!_signatureIsUsed[signatureHash], "ERROR:DMH-001:SIGNATURE_USED");
|
115
|
+
|
116
|
+
// address signer = getSignerFromDigestAndSignature(
|
117
|
+
// protectedWallet,
|
118
|
+
// protectedBalance,
|
119
|
+
// duration,
|
120
|
+
// bundleId,
|
121
|
+
// signatureId,
|
122
|
+
// signature);
|
123
|
+
|
124
|
+
// require(policyHolder == signer, "ERROR:DMH-002:SIGNATURE_INVALID");
|
125
|
+
|
126
|
+
// _signatureIsUsed[signatureHash] = true;
|
127
|
+
// }
|
128
|
+
}
|