@etherisc/gif-next 0.0.2-f12cf4d-104 → 0.0.2-f13d67f-541
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 +86 -312
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +729 -287
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +438 -35
- 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 +560 -220
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +191 -21
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +128 -218
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +427 -53
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +58 -137
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +555 -217
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +170 -82
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +37 -116
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +401 -78
- 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 +183 -138
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +401 -59
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +324 -260
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +426 -52
- 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 +408 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +849 -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 +2185 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -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 +214 -215
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +94 -110
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +196 -165
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +600 -306
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +551 -50
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +415 -15
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +606 -112
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1121 -374
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +379 -68
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1136 -561
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +419 -82
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -54
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1283 -1912
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- 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 +77 -91
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +425 -54
- 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 +41 -55
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +61 -75
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +141 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +134 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -124
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +401 -59
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +298 -329
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +133 -97
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +200 -131
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +59 -73
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +333 -169
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +72 -86
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +565 -367
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +169 -69
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +313 -64
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +123 -47
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +193 -192
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +426 -52
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +292 -195
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -94
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +268 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +160 -55
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +168 -167
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +283 -195
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +153 -81
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +135 -126
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +118 -70
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +187 -186
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +326 -91
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +123 -47
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +54 -19
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- 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 +92 -57
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +845 -489
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +71 -35
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -43
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
- 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 +398 -64
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +60 -60
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +269 -561
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +134 -86
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +525 -4
- 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 +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- 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/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +41 -41
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +155 -382
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +41 -55
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -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/IService.sol/IService.json +56 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +60 -74
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1457 -145
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1634 -275
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +149 -62
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +253 -174
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +102 -50
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1632 -818
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +160 -88
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +11 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
- 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 +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- 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 +49 -50
- 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 +69 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +389 -306
- package/contracts/authorization/AccessAdminLib.sol +678 -0
- package/contracts/authorization/AccessManagerCloneable.sol +128 -4
- package/contracts/authorization/Authorization.sol +161 -260
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +89 -84
- package/contracts/authorization/IAuthorization.sol +9 -43
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +19 -18
- package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
- package/contracts/distribution/Distribution.sol +45 -85
- package/contracts/distribution/DistributionService.sol +192 -99
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +38 -24
- package/contracts/examples/fire/FirePool.sol +6 -6
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +15 -13
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/flight/FlightLib.sol +279 -0
- package/contracts/examples/flight/FlightOracle.sol +168 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +470 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
- package/contracts/examples/flight/FlightUSD.sol +26 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +34 -11
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +7 -13
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +119 -27
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +109 -19
- package/contracts/instance/IInstanceService.sol +59 -11
- package/contracts/instance/Instance.sol +184 -65
- package/contracts/instance/InstanceAdmin.sol +221 -191
- package/contracts/instance/InstanceAuthorizationV3.sol +153 -72
- package/contracts/instance/InstanceReader.sol +447 -314
- package/contracts/instance/InstanceService.sol +305 -205
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +152 -116
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +6 -8
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +18 -8
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/oracle/BasicOracle.sol +3 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleService.sol +12 -12
- package/contracts/oracle/Oracle.sol +5 -9
- package/contracts/oracle/OracleService.sol +98 -80
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +4 -18
- package/contracts/pool/BasicPoolAuthorization.sol +29 -16
- package/contracts/pool/BundleService.sol +66 -165
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +27 -51
- package/contracts/pool/IPoolService.sol +56 -58
- package/contracts/pool/Pool.sol +15 -29
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +221 -227
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +93 -25
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +4 -5
- package/contracts/product/BasicProductAuthorization.sol +33 -11
- package/contracts/product/ClaimService.sol +221 -209
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +28 -3
- package/contracts/product/IClaimService.sol +18 -5
- package/contracts/product/IPolicyService.sol +31 -11
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +25 -10
- package/contracts/product/PolicyService.sol +252 -302
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +52 -46
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +95 -36
- package/contracts/product/RiskService.sol +130 -37
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +23 -24
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +22 -11
- package/contracts/registry/RegistryAdmin.sol +94 -383
- package/contracts/registry/RegistryAuthorization.sol +337 -0
- package/contracts/registry/RegistryService.sol +4 -4
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +199 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +157 -117
- package/contracts/registry/ServiceAuthorizationV3.sol +193 -54
- package/contracts/registry/TokenRegistry.sol +61 -59
- package/contracts/shared/Component.sol +36 -55
- package/contracts/shared/ComponentService.sol +350 -438
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +260 -2
- package/contracts/shared/IComponent.sol +1 -10
- package/contracts/shared/IComponentService.sol +22 -41
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +62 -35
- package/contracts/shared/NftOwnable.sol +8 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +42 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +45 -100
- package/contracts/staking/IStaking.sol +265 -72
- package/contracts/staking/IStakingService.sol +45 -75
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +502 -210
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +62 -194
- package/contracts/staking/StakingServiceManager.sol +6 -4
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +70 -68
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +23 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +42 -0
- package/contracts/type/Timestamp.sol +14 -8
- package/contracts/type/UFixed.sol +35 -127
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +27 -13
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -2
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,6 +1,8 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
4
6
|
import {Amount, AmountLib} from "../../type/Amount.sol";
|
5
7
|
import {BasicPool} from "../../pool/BasicPool.sol";
|
6
8
|
import {Fee} from "../../type/Fee.sol";
|
@@ -12,13 +14,11 @@ import {UFixed, UFixedLib} from "../../type/UFixed.sol";
|
|
12
14
|
|
13
15
|
contract FirePool is
|
14
16
|
BasicPool
|
15
|
-
{
|
16
|
-
|
17
|
+
{
|
17
18
|
constructor(
|
18
19
|
address registry,
|
19
20
|
NftId fireProductNftId,
|
20
21
|
string memory componentName,
|
21
|
-
address token,
|
22
22
|
IAuthorization authorization
|
23
23
|
)
|
24
24
|
{
|
@@ -27,7 +27,6 @@ contract FirePool is
|
|
27
27
|
registry,
|
28
28
|
fireProductNftId,
|
29
29
|
componentName,
|
30
|
-
token,
|
31
30
|
IComponents.PoolInfo({
|
32
31
|
maxBalanceAmount: AmountLib.max(),
|
33
32
|
isInterceptingBundleTransfers: false,
|
@@ -45,7 +44,6 @@ contract FirePool is
|
|
45
44
|
address registry,
|
46
45
|
NftId fireProductNftId,
|
47
46
|
string memory componentName,
|
48
|
-
address token,
|
49
47
|
IComponents.PoolInfo memory poolInfo,
|
50
48
|
IAuthorization authorization,
|
51
49
|
address initialOwner
|
@@ -57,7 +55,6 @@ contract FirePool is
|
|
57
55
|
registry,
|
58
56
|
fireProductNftId,
|
59
57
|
componentName,
|
60
|
-
token,
|
61
58
|
poolInfo,
|
62
59
|
authorization,
|
63
60
|
initialOwner);
|
@@ -83,4 +80,7 @@ contract FirePool is
|
|
83
80
|
netStakedAmount = _stake(bundleNftId, initialAmount);
|
84
81
|
}
|
85
82
|
|
83
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
84
|
+
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
85
|
+
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
86
86
|
}
|
@@ -25,8 +25,9 @@ contract FirePoolAuthorization
|
|
25
25
|
IAccess.FunctionInfo[] storage functions;
|
26
26
|
|
27
27
|
// authorize public role (open access to any account, only allows to lock target)
|
28
|
-
functions = _authorizeForTarget(
|
28
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
29
29
|
// TODO: FirePool.createBundle must require a custom role (e.g. INVESTOR) instead of PUBLIC_ROLE
|
30
|
+
_authorize(functions, FirePool.approveTokenHandler.selector, "approveTokenHandler");
|
30
31
|
_authorize(functions, FirePool.createBundle.selector, "createBundle");
|
31
32
|
}
|
32
33
|
|
@@ -1,6 +1,8 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
4
6
|
import {ACTIVE, PAUSED} from "../../type/StateId.sol";
|
5
7
|
import {Amount, AmountLib} from "../../type/Amount.sol";
|
6
8
|
import {BasicProduct} from "../../product/BasicProduct.sol";
|
@@ -66,7 +68,6 @@ contract FireProduct is
|
|
66
68
|
address registry,
|
67
69
|
NftId instanceNftid,
|
68
70
|
string memory componentName,
|
69
|
-
address token,
|
70
71
|
IAuthorization authorization
|
71
72
|
)
|
72
73
|
{
|
@@ -76,7 +77,6 @@ contract FireProduct is
|
|
76
77
|
registry,
|
77
78
|
instanceNftid,
|
78
79
|
componentName,
|
79
|
-
token,
|
80
80
|
authorization,
|
81
81
|
initialOwner);
|
82
82
|
}
|
@@ -85,7 +85,6 @@ contract FireProduct is
|
|
85
85
|
address registry,
|
86
86
|
NftId instanceNftId,
|
87
87
|
string memory componentName,
|
88
|
-
address token,
|
89
88
|
IAuthorization authorization,
|
90
89
|
address initialOwner
|
91
90
|
)
|
@@ -96,7 +95,6 @@ contract FireProduct is
|
|
96
95
|
registry,
|
97
96
|
instanceNftId,
|
98
97
|
componentName,
|
99
|
-
token,
|
100
98
|
IComponents.ProductInfo({
|
101
99
|
isProcessingFundedClaims: false,
|
102
100
|
isInterceptingPolicyTransfers: false,
|
@@ -105,7 +103,9 @@ contract FireProduct is
|
|
105
103
|
numberOfOracles: 0,
|
106
104
|
poolNftId: NftIdLib.zero(),
|
107
105
|
distributionNftId: NftIdLib.zero(),
|
108
|
-
oracleNftId: new NftId[](0)
|
106
|
+
oracleNftId: new NftId[](0)
|
107
|
+
}),
|
108
|
+
IComponents.FeeInfo({
|
109
109
|
productFee: FeeLib.zero(),
|
110
110
|
processingFee: FeeLib.zero(),
|
111
111
|
distributionFee: FeeLib.zero(),
|
@@ -140,9 +140,9 @@ contract FireProduct is
|
|
140
140
|
revert ErrorFireProductCityUnknown(cityName);
|
141
141
|
}
|
142
142
|
|
143
|
-
|
143
|
+
_setRiskLocked(
|
144
144
|
_riskMapping[cityName],
|
145
|
-
|
145
|
+
true
|
146
146
|
);
|
147
147
|
}
|
148
148
|
|
@@ -156,9 +156,9 @@ contract FireProduct is
|
|
156
156
|
revert ErrorFireProductCityUnknown(cityName);
|
157
157
|
}
|
158
158
|
|
159
|
-
|
159
|
+
_setRiskLocked(
|
160
160
|
_riskMapping[cityName],
|
161
|
-
|
161
|
+
false
|
162
162
|
);
|
163
163
|
}
|
164
164
|
|
@@ -248,8 +248,7 @@ contract FireProduct is
|
|
248
248
|
return _riskMapping[cityName];
|
249
249
|
}
|
250
250
|
_cities.push(cityName);
|
251
|
-
risk =
|
252
|
-
_createRisk(risk, "");
|
251
|
+
risk = _createRisk(bytes32(abi.encodePacked(cityName)), "");
|
253
252
|
_riskMapping[cityName] = risk;
|
254
253
|
}
|
255
254
|
|
@@ -264,7 +263,7 @@ contract FireProduct is
|
|
264
263
|
onlyOwner()
|
265
264
|
onlyNftOfType(policyNftId, POLICY())
|
266
265
|
{
|
267
|
-
_createPolicy(policyNftId, activateAt);
|
266
|
+
_createPolicy(policyNftId, activateAt, AmountLib.max());
|
268
267
|
_collectPremium(policyNftId, activateAt);
|
269
268
|
}
|
270
269
|
|
@@ -317,7 +316,7 @@ contract FireProduct is
|
|
317
316
|
revert ErrorFireProductCityUnknown(cityName);
|
318
317
|
}
|
319
318
|
|
320
|
-
if (reportedAt > TimestampLib.
|
319
|
+
if (reportedAt > TimestampLib.current()) {
|
321
320
|
revert ErrorFireProductTimestampInFuture();
|
322
321
|
}
|
323
322
|
|
@@ -428,4 +427,7 @@ contract FireProduct is
|
|
428
427
|
}
|
429
428
|
}
|
430
429
|
|
430
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
431
|
+
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
432
|
+
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
431
433
|
}
|
@@ -23,8 +23,9 @@ contract FireProductAuthorization
|
|
23
23
|
IAccess.FunctionInfo[] storage functions;
|
24
24
|
|
25
25
|
// authorize public role (open access to any account, only allows to lock target)
|
26
|
-
functions = _authorizeForTarget(
|
26
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
27
27
|
// fully public functions
|
28
|
+
_authorize(functions, FireProduct.approveTokenHandler.selector, "approveTokenHandler");
|
28
29
|
_authorize(functions, FireProduct.createApplication.selector, "createApplication");
|
29
30
|
|
30
31
|
// only owner
|
@@ -0,0 +1,279 @@
|
|
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 {FlightProduct} from "./FlightProduct.sol";
|
9
|
+
import {InstanceReader} from "../../instance/InstanceReader.sol";
|
10
|
+
import {NftId} from "../../type/NftId.sol";
|
11
|
+
import {RequestId} from "../../type/RequestId.sol";
|
12
|
+
import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
|
13
|
+
import {StateId} from "../../type/StateId.sol";
|
14
|
+
import {Str} from "../../type/String.sol";
|
15
|
+
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
16
|
+
|
17
|
+
library FlightLib {
|
18
|
+
|
19
|
+
function checkParameters(
|
20
|
+
FlightProduct flightProduct,
|
21
|
+
Timestamp departureTime,
|
22
|
+
Timestamp arrivalTime,
|
23
|
+
Amount premium
|
24
|
+
)
|
25
|
+
internal
|
26
|
+
view
|
27
|
+
{
|
28
|
+
// solhint-disable
|
29
|
+
require(premium >= flightProduct.MIN_PREMIUM(), "ERROR:FDD-001:INVALID_PREMIUM");
|
30
|
+
require(premium <= flightProduct.MAX_PREMIUM(), "ERROR:FDD-002:INVALID_PREMIUM");
|
31
|
+
require(arrivalTime > departureTime, "ERROR:FDD-003:ARRIVAL_BEFORE_DEPARTURE_TIME");
|
32
|
+
|
33
|
+
// TODO decide how to handle demo mode
|
34
|
+
require(
|
35
|
+
arrivalTime <= departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION()),
|
36
|
+
"ERROR:FDD-004:INVALID_ARRIVAL/DEPARTURE_TIME");
|
37
|
+
require(
|
38
|
+
TimestampLib.current() >= departureTime.subtractSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE()),
|
39
|
+
"ERROR:FDD-005:INVALID_ARRIVAL/DEPARTURE_TIME");
|
40
|
+
require(
|
41
|
+
TimestampLib.current() <= departureTime.subtractSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE()),
|
42
|
+
"ERROR:FDD-012:INVALID_ARRIVAL/DEPARTURE_TIME");
|
43
|
+
// solhint-enable
|
44
|
+
}
|
45
|
+
|
46
|
+
|
47
|
+
// TODO fix or cleanup
|
48
|
+
// function checkApplication(
|
49
|
+
// FlightProduct flightProduct,
|
50
|
+
// Str carrierFlightNumber,
|
51
|
+
// Timestamp departureTime,
|
52
|
+
// Timestamp arrivalTime,
|
53
|
+
// Amount premium
|
54
|
+
// )
|
55
|
+
// external
|
56
|
+
// view
|
57
|
+
// returns (uint256 errors)
|
58
|
+
// {
|
59
|
+
// // Validate input parameters
|
60
|
+
// if (premium < flightProduct.MIN_PREMIUM()) { errors = errors | (uint256(1) << 0); }
|
61
|
+
// if (premium > flightProduct.MAX_PREMIUM()) { errors = errors | (uint256(1) << 1); }
|
62
|
+
// if (arrivalTime < departureTime) { errors = errors | (uint256(1) << 2); }
|
63
|
+
// if (arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) { errors = errors | (uint256(1) << 3); }
|
64
|
+
// if (departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) { errors = errors | (uint256(1) << 4); }
|
65
|
+
// if (departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) { errors = errors | (uint256(1) << 5); }
|
66
|
+
|
67
|
+
// (, bool exists, FlightProduct.FlightRisk memory flightRisk) = getFlightRisk(
|
68
|
+
// flightProduct.getInstanceReader(), flightProduct.getNftId(), carrierFlightNumber, departureTime, arrivalTime);
|
69
|
+
|
70
|
+
// if (exists) {
|
71
|
+
// Amount sumInsured = AmountLib.toAmount(premium.toInt() * flightRisk.premiumMultiplier);
|
72
|
+
// if (flightRisk.sumOfSumInsuredAmounts + sumInsured > flightProduct.MAX_TOTAL_PAYOUT()) {
|
73
|
+
// errors = errors | (uint256(1) << 6);
|
74
|
+
// }
|
75
|
+
// }
|
76
|
+
|
77
|
+
// return errors;
|
78
|
+
// }
|
79
|
+
|
80
|
+
|
81
|
+
/// @dev calculates payout option based on flight status and delay minutes.
|
82
|
+
/// Is not a view function as it emits log evens in case of unexpected status.
|
83
|
+
// TODO decide if reverts instead of log events could work too (and convert the function into a view function)
|
84
|
+
function checkAndGetPayoutOption(
|
85
|
+
RequestId requestId,
|
86
|
+
RiskId riskId,
|
87
|
+
bytes1 status,
|
88
|
+
int256 delayMinutes
|
89
|
+
)
|
90
|
+
public
|
91
|
+
returns (uint8 payoutOption)
|
92
|
+
{
|
93
|
+
// default: no payout
|
94
|
+
payoutOption = type(uint8).max;
|
95
|
+
|
96
|
+
// check status
|
97
|
+
if (status != "L" && status != "A" && status != "C" && status != "D") {
|
98
|
+
emit FlightProduct.LogErrorUnprocessableStatus(requestId, riskId, status);
|
99
|
+
return payoutOption;
|
100
|
+
}
|
101
|
+
|
102
|
+
if (status == "A") {
|
103
|
+
// todo: active, reschedule oracle call + 45 min
|
104
|
+
emit FlightProduct.LogErrorUnexpectedStatus(requestId, riskId, status, delayMinutes);
|
105
|
+
return payoutOption;
|
106
|
+
}
|
107
|
+
|
108
|
+
// trigger payout if applicable
|
109
|
+
if (status == "C") { payoutOption = 3; }
|
110
|
+
else if (status == "D") { payoutOption = 4; }
|
111
|
+
else if (delayMinutes >= 15 && delayMinutes < 30) { payoutOption = 0; }
|
112
|
+
else if (delayMinutes >= 30 && delayMinutes < 45) { payoutOption = 1; }
|
113
|
+
else if (delayMinutes >= 45) { payoutOption = 2; }
|
114
|
+
}
|
115
|
+
|
116
|
+
|
117
|
+
function calculateWeight(
|
118
|
+
FlightProduct flightProduct,
|
119
|
+
uint256[6] memory statistics
|
120
|
+
)
|
121
|
+
public
|
122
|
+
view
|
123
|
+
returns (uint256 weight)
|
124
|
+
{
|
125
|
+
// check we have enough observations
|
126
|
+
require(statistics[0] >= flightProduct.MIN_OBSERVATIONS(), "ERROR:FDD-011:LOW_OBSERVATIONS");
|
127
|
+
|
128
|
+
weight = 0;
|
129
|
+
for (uint256 i = 1; i < 6; i++) {
|
130
|
+
weight += flightProduct.WEIGHT_PATTERN(i) * statistics[i] * 10000 / statistics[0];
|
131
|
+
}
|
132
|
+
|
133
|
+
// To avoid div0 in the payout section, we have to make a minimal assumption on weight
|
134
|
+
if (weight == 0) {
|
135
|
+
weight = 100000 / statistics[0];
|
136
|
+
}
|
137
|
+
|
138
|
+
// TODO comment on intended effect
|
139
|
+
weight = (weight * (100 + flightProduct.MARGIN_PERCENT())) / 100;
|
140
|
+
}
|
141
|
+
|
142
|
+
|
143
|
+
// REMARK: each flight may get different payouts depending on the latest statics
|
144
|
+
function calculatePayoutAmounts(
|
145
|
+
FlightProduct flightProduct,
|
146
|
+
Amount premium,
|
147
|
+
uint256[6] memory statistics
|
148
|
+
)
|
149
|
+
public
|
150
|
+
view
|
151
|
+
returns (
|
152
|
+
uint256 weight,
|
153
|
+
Amount[5] memory payoutAmounts,
|
154
|
+
Amount sumInsuredAmount // simply the max of payoutAmounts
|
155
|
+
)
|
156
|
+
{
|
157
|
+
require(premium >= flightProduct.MIN_PREMIUM(), "ERROR:FDD-009:INVALID_PREMIUM");
|
158
|
+
require(premium <= flightProduct.MAX_PREMIUM(), "ERROR:FDD-010:INVALID_PREMIUM");
|
159
|
+
|
160
|
+
sumInsuredAmount = AmountLib.zero();
|
161
|
+
weight = calculateWeight(flightProduct, statistics);
|
162
|
+
|
163
|
+
for (uint256 i = 0; i < 5; i++) {
|
164
|
+
Amount payoutAmount = AmountLib.toAmount(
|
165
|
+
premium.toInt() * flightProduct.WEIGHT_PATTERN(i + 1) * 10000 / weight);
|
166
|
+
|
167
|
+
// cap payout and update sum insured if applicable
|
168
|
+
if (payoutAmount > flightProduct.MAX_PAYOUT()) { payoutAmount = flightProduct.MAX_PAYOUT(); }
|
169
|
+
if (payoutAmount > sumInsuredAmount) { sumInsuredAmount = payoutAmount; }
|
170
|
+
|
171
|
+
payoutAmounts[i] = payoutAmount;
|
172
|
+
}
|
173
|
+
}
|
174
|
+
|
175
|
+
|
176
|
+
function getPayoutAmount(
|
177
|
+
bytes memory applicationData,
|
178
|
+
uint8 payoutOption
|
179
|
+
)
|
180
|
+
public
|
181
|
+
returns (Amount payoutAmount)
|
182
|
+
{
|
183
|
+
// retrieve payout amounts from application data
|
184
|
+
(, Amount[5] memory payoutAmounts) = abi.decode(
|
185
|
+
applicationData, (Amount, Amount[5]));
|
186
|
+
|
187
|
+
// get payout amount for selected option
|
188
|
+
payoutAmount = payoutAmounts[payoutOption];
|
189
|
+
}
|
190
|
+
|
191
|
+
|
192
|
+
function getFlightRisk(
|
193
|
+
InstanceReader reader,
|
194
|
+
NftId productNftId,
|
195
|
+
Str carrierFlightNumber,
|
196
|
+
Str departureYearMonthDay,
|
197
|
+
Timestamp departureTime,
|
198
|
+
Timestamp arrivalTime
|
199
|
+
)
|
200
|
+
public
|
201
|
+
view
|
202
|
+
returns (
|
203
|
+
RiskId riskId,
|
204
|
+
bool exists,
|
205
|
+
FlightProduct.FlightRisk memory flightRisk
|
206
|
+
)
|
207
|
+
{
|
208
|
+
riskId = getRiskId(productNftId, carrierFlightNumber, departureTime, arrivalTime);
|
209
|
+
(exists, flightRisk) = getFlightRisk(reader, productNftId, riskId);
|
210
|
+
|
211
|
+
if (!exists) {
|
212
|
+
// create new risk
|
213
|
+
flightRisk = FlightProduct.FlightRisk({
|
214
|
+
carrierFlightNumber: carrierFlightNumber,
|
215
|
+
departureYearMonthDay: departureYearMonthDay,
|
216
|
+
departureTime: departureTime,
|
217
|
+
arrivalTime: arrivalTime,
|
218
|
+
sumOfSumInsuredAmounts: AmountLib.toAmount(0),
|
219
|
+
status: bytes1(0),
|
220
|
+
delayMinutes: 0});
|
221
|
+
}
|
222
|
+
}
|
223
|
+
|
224
|
+
|
225
|
+
function getFlightRisk(
|
226
|
+
InstanceReader reader,
|
227
|
+
NftId productNftId,
|
228
|
+
RiskId riskId
|
229
|
+
)
|
230
|
+
public
|
231
|
+
view
|
232
|
+
returns (
|
233
|
+
bool exists,
|
234
|
+
FlightProduct.FlightRisk memory flightRisk
|
235
|
+
)
|
236
|
+
{
|
237
|
+
// check if risk exists
|
238
|
+
exists = reader.isProductRisk(productNftId, riskId);
|
239
|
+
|
240
|
+
// get risk data if risk exists
|
241
|
+
if (exists) {
|
242
|
+
flightRisk = abi.decode(
|
243
|
+
reader.getRiskInfo(riskId).data, (FlightProduct.FlightRisk));
|
244
|
+
}
|
245
|
+
}
|
246
|
+
|
247
|
+
|
248
|
+
function getRiskId(
|
249
|
+
NftId productNftId,
|
250
|
+
Str carrierFlightNumber,
|
251
|
+
Timestamp departureTime,
|
252
|
+
Timestamp arrivalTime
|
253
|
+
)
|
254
|
+
public
|
255
|
+
view
|
256
|
+
returns (RiskId riskId)
|
257
|
+
{
|
258
|
+
bytes32 riskKey = getRiskKey(carrierFlightNumber, departureTime, arrivalTime);
|
259
|
+
riskId = getRiskId(productNftId, riskKey);
|
260
|
+
}
|
261
|
+
|
262
|
+
|
263
|
+
function getRiskKey(
|
264
|
+
Str carrierFlightNumber,
|
265
|
+
Timestamp departureTime,
|
266
|
+
Timestamp arrivalTime
|
267
|
+
)
|
268
|
+
internal
|
269
|
+
pure
|
270
|
+
returns (bytes32 riskKey)
|
271
|
+
{
|
272
|
+
return keccak256(abi.encode(carrierFlightNumber, departureTime, arrivalTime));
|
273
|
+
}
|
274
|
+
|
275
|
+
|
276
|
+
function getRiskId(NftId productNftId, bytes32 riskKey) internal view returns (RiskId riskId) {
|
277
|
+
return RiskIdLib.toRiskId(productNftId, riskKey);
|
278
|
+
}
|
279
|
+
}
|
@@ -0,0 +1,168 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
5
|
+
|
6
|
+
import {FULFILLED} from "../../type/StateId.sol";
|
7
|
+
import {NftId} from "../../type/NftId.sol";
|
8
|
+
import {BasicOracle} from "../../oracle/BasicOracle.sol";
|
9
|
+
import {RequestId} from "../../type/RequestId.sol";
|
10
|
+
import {LibRequestIdSet} from "../../type/RequestIdSet.sol";
|
11
|
+
import {RiskId} from "../../type/RiskId.sol";
|
12
|
+
import {Str} from "../../type/String.sol";
|
13
|
+
import {Timestamp} from "../../type/Timestamp.sol";
|
14
|
+
|
15
|
+
contract FlightOracle is
|
16
|
+
BasicOracle
|
17
|
+
{
|
18
|
+
|
19
|
+
struct FlightStatusRequest {
|
20
|
+
RiskId riskId;
|
21
|
+
Str carrierFlightNumber;
|
22
|
+
Str departureYearMonthDay;
|
23
|
+
Timestamp departureTime; // is this needed or is flight number and date unique aready?
|
24
|
+
}
|
25
|
+
|
26
|
+
struct FlightStatusResponse {
|
27
|
+
RiskId riskId;
|
28
|
+
bytes1 status;
|
29
|
+
int256 delayMinutes;
|
30
|
+
}
|
31
|
+
|
32
|
+
event LogFlightOracleRequestReceived(RequestId requestId, NftId requesterId);
|
33
|
+
event LogFlightOracleResponseSent(RequestId requestId, bytes1 status, int256 delay);
|
34
|
+
event LogFlightOracleRequestCancelled(RequestId requestId);
|
35
|
+
|
36
|
+
// TODO decide if this variable should be moved to instance store
|
37
|
+
// if so it need to manage active requests by requestor nft id
|
38
|
+
LibRequestIdSet.Set internal _activeRequests;
|
39
|
+
|
40
|
+
|
41
|
+
constructor(
|
42
|
+
address registry,
|
43
|
+
NftId productNftId,
|
44
|
+
string memory componentName,
|
45
|
+
IAuthorization authorization
|
46
|
+
)
|
47
|
+
{
|
48
|
+
address initialOwner = msg.sender;
|
49
|
+
initialize(
|
50
|
+
registry,
|
51
|
+
productNftId,
|
52
|
+
authorization,
|
53
|
+
initialOwner,
|
54
|
+
componentName
|
55
|
+
);
|
56
|
+
}
|
57
|
+
|
58
|
+
|
59
|
+
function initialize(
|
60
|
+
address registry,
|
61
|
+
NftId productNftId,
|
62
|
+
IAuthorization authorization,
|
63
|
+
address initialOwner,
|
64
|
+
string memory name
|
65
|
+
)
|
66
|
+
public
|
67
|
+
virtual
|
68
|
+
initializer()
|
69
|
+
{
|
70
|
+
_initializeBasicOracle(
|
71
|
+
registry,
|
72
|
+
productNftId,
|
73
|
+
authorization,
|
74
|
+
initialOwner,
|
75
|
+
name);
|
76
|
+
}
|
77
|
+
|
78
|
+
|
79
|
+
function respondWithFlightStatus(
|
80
|
+
RequestId requestId,
|
81
|
+
bytes1 status,
|
82
|
+
int256 delayMinutes
|
83
|
+
)
|
84
|
+
external
|
85
|
+
restricted()
|
86
|
+
{
|
87
|
+
// obtain riskId for request
|
88
|
+
bytes memory requestData = _getInstanceReader().getRequestInfo(requestId).requestData;
|
89
|
+
(RiskId riskId,,,) = abi.decode(requestData, (RiskId, Str, Str, Timestamp));
|
90
|
+
// assemble response data
|
91
|
+
bytes memory responseData = abi.encode(
|
92
|
+
FlightStatusResponse ({
|
93
|
+
riskId: riskId,
|
94
|
+
status: status,
|
95
|
+
delayMinutes: delayMinutes}));
|
96
|
+
|
97
|
+
// logging
|
98
|
+
emit LogFlightOracleResponseSent(requestId, status, delayMinutes);
|
99
|
+
|
100
|
+
// effects + interaction (via framework to receiving component)
|
101
|
+
_respond(requestId, responseData);
|
102
|
+
|
103
|
+
// TODO decide if the code below should be moved to GIF
|
104
|
+
// check callback result
|
105
|
+
bool requestFulfilled = _getInstanceReader().getRequestState(
|
106
|
+
requestId) == FULFILLED();
|
107
|
+
|
108
|
+
// remove from active requests when successful
|
109
|
+
if (requestFulfilled) {
|
110
|
+
LibRequestIdSet.remove(_activeRequests, requestId);
|
111
|
+
}
|
112
|
+
}
|
113
|
+
|
114
|
+
//--- view functions ----------------------------------------------------//
|
115
|
+
|
116
|
+
// TODO decide if the code below should be moved to GIF
|
117
|
+
function activeRequests()
|
118
|
+
external
|
119
|
+
view
|
120
|
+
returns(uint256 numberOfRequests)
|
121
|
+
{
|
122
|
+
return LibRequestIdSet.size(_activeRequests);
|
123
|
+
}
|
124
|
+
|
125
|
+
|
126
|
+
// TODO decide if the code below should be moved to GIF
|
127
|
+
function getActiveRequest(uint256 idx)
|
128
|
+
external
|
129
|
+
view
|
130
|
+
returns(RequestId requestId)
|
131
|
+
{
|
132
|
+
return LibRequestIdSet.getElementAt(_activeRequests, idx);
|
133
|
+
}
|
134
|
+
|
135
|
+
//--- internal functions ------------------------------------------------//
|
136
|
+
|
137
|
+
/// @dev use case specific handling of oracle requests
|
138
|
+
/// for now only log is emitted to verify that request has been received by oracle component
|
139
|
+
function _request(
|
140
|
+
RequestId requestId,
|
141
|
+
NftId requesterId,
|
142
|
+
bytes calldata requestData,
|
143
|
+
Timestamp expiryAt
|
144
|
+
)
|
145
|
+
internal
|
146
|
+
virtual override
|
147
|
+
{
|
148
|
+
FlightStatusRequest memory request = abi.decode(requestData, (FlightStatusRequest));
|
149
|
+
|
150
|
+
// TODO decide if the line below should be moved to GIF
|
151
|
+
LibRequestIdSet.add(_activeRequests, requestId);
|
152
|
+
emit LogFlightOracleRequestReceived(requestId, requesterId);
|
153
|
+
}
|
154
|
+
|
155
|
+
|
156
|
+
/// @dev use case specific handling of oracle requests
|
157
|
+
/// for now only log is emitted to verify that cancelling has been received by oracle component
|
158
|
+
function _cancel(
|
159
|
+
RequestId requestId
|
160
|
+
)
|
161
|
+
internal
|
162
|
+
virtual override
|
163
|
+
{
|
164
|
+
// TODO decide if the line below should be moved to GIF
|
165
|
+
LibRequestIdSet.remove(_activeRequests, requestId);
|
166
|
+
emit LogFlightOracleRequestCancelled(requestId);
|
167
|
+
}
|
168
|
+
}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
4
|
+
pragma solidity ^0.8.20;
|
5
|
+
|
6
|
+
import {IAccess} from "../../../contracts/authorization/IAccess.sol";
|
7
|
+
|
8
|
+
import {BasicOracleAuthorization} from "../../oracle/BasicOracleAuthorization.sol";
|
9
|
+
import {FlightOracle} from "./FlightOracle.sol";
|
10
|
+
import {PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
|
11
|
+
|
12
|
+
contract FlightOracleAuthorization
|
13
|
+
is BasicOracleAuthorization
|
14
|
+
{
|
15
|
+
|
16
|
+
constructor(string memory oracleName, string memory commitHash)
|
17
|
+
BasicOracleAuthorization(oracleName, commitHash)
|
18
|
+
{}
|
19
|
+
|
20
|
+
|
21
|
+
function _setupTargetAuthorizations()
|
22
|
+
internal
|
23
|
+
virtual override
|
24
|
+
{
|
25
|
+
super._setupTargetAuthorizations();
|
26
|
+
IAccess.FunctionInfo[] storage functions;
|
27
|
+
|
28
|
+
// TODO IMPORTANT must not be public role for prod!!!
|
29
|
+
// authorize public role (also protected by onlyOwner)
|
30
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
31
|
+
_authorize(functions, FlightOracle.respondWithFlightStatus.selector, "respondWithFlightStatus");
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|