@etherisc/gif-next 3.0.0-41d2e68-118 → 3.0.0-42b16db-137
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/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +2 -2
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +2 -2
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +87 -99
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2 -2
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +63 -75
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +2 -2
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +143 -131
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +47 -47
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +51 -39
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +2 -2
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +2 -2
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2 -2
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +2 -2
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +2 -2
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +2 -2
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +54 -99
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +20 -20
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +2 -2
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +2 -2
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +15 -15
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +20 -20
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +2 -2
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +101 -18
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +2 -2
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +56 -56
- 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 +33 -20
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +37 -23
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +50 -32
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +170 -182
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +21 -21
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +103 -36
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +59 -45
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +12 -12
- 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/RequestSet.sol/RequestSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RequestSet.sol/RequestSet.json +466 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +38 -2
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +97 -14
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +83 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +83 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +38 -38
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +20 -20
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +2 -2
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +2 -2
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +2 -2
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +2 -2
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +2 -2
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +36 -36
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +19 -19
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +2 -2
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +2 -2
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +2 -2
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +2 -2
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +2 -2
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +147 -159
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -2
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +170 -182
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +57 -57
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +2 -2
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +2 -2
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +2 -2
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2 -2
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +2 -2
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +2 -2
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +2 -2
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -2
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +23 -4
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +8 -10
- package/contracts/authorization/IAccessAdmin.sol +8 -9
- package/contracts/distribution/DistributionService.sol +19 -22
- package/contracts/distribution/IDistributionService.sol +8 -8
- package/contracts/examples/flight/FlightOracle.sol +0 -97
- package/contracts/examples/flight/FlightOracleAuthorization.sol +2 -3
- package/contracts/examples/flight/FlightProduct.sol +2 -2
- package/contracts/examples/flight/FlightProductAuthorization.sol +1 -1
- package/contracts/instance/BundleSet.sol +6 -6
- package/contracts/instance/IInstance.sol +10 -7
- package/contracts/instance/IInstanceService.sol +10 -6
- package/contracts/instance/Instance.sol +8 -0
- package/contracts/instance/InstanceAdmin.sol +2 -1
- package/contracts/instance/InstanceAuthorizationV3.sol +15 -1
- package/contracts/instance/InstanceReader.sol +15 -0
- package/contracts/instance/InstanceService.sol +61 -41
- package/contracts/instance/RequestSet.sol +63 -0
- package/contracts/instance/TargetNames.sol +1 -0
- package/contracts/instance/base/ObjectSet.sol +8 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +5 -1
- package/contracts/oracle/IOracleComponent.sol +10 -0
- package/contracts/oracle/Oracle.sol +47 -23
- package/contracts/oracle/OracleService.sol +25 -22
- package/contracts/shared/InstanceLinkedComponent.sol +1 -1
- package/contracts/type/RequestId.sol +6 -0
- package/package.json +1 -1
@@ -22,6 +22,7 @@ import {InstanceStore} from "./InstanceStore.sol";
|
|
22
22
|
import {NftId} from "../type/NftId.sol";
|
23
23
|
import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
24
24
|
import {ProductStore} from "./ProductStore.sol";
|
25
|
+
import {RequestSet} from "./RequestSet.sol";
|
25
26
|
import {RiskSet} from "./RiskSet.sol";
|
26
27
|
import {RoleId} from "../type/RoleId.sol";
|
27
28
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -49,6 +50,7 @@ contract InstanceService is
|
|
49
50
|
address internal _masterInstanceReader;
|
50
51
|
address internal _masterInstanceBundleSet;
|
51
52
|
address internal _masterInstanceRiskSet;
|
53
|
+
address internal _masterInstanceRequestSet;
|
52
54
|
address internal _masterInstanceStore;
|
53
55
|
address internal _masterProductStore;
|
54
56
|
|
@@ -304,13 +306,11 @@ contract InstanceService is
|
|
304
306
|
InstanceReader upgradedInstanceReaderClone = InstanceReader(
|
305
307
|
Clones.clone(address(_masterInstanceReader)));
|
306
308
|
|
307
|
-
address oldInstanceReaderAddress = address(instance.getInstanceReader());
|
308
309
|
upgradedInstanceReaderClone.initializeWithInstance(instanceAddress);
|
309
310
|
instance.setInstanceReader(upgradedInstanceReaderClone);
|
310
311
|
|
311
312
|
emit LogInstanceServiceInstanceReaderUpgraded(
|
312
313
|
getRegistry().getNftIdForAddress(instanceAddress),
|
313
|
-
oldInstanceReaderAddress,
|
314
314
|
address(upgradedInstanceReaderClone));
|
315
315
|
}
|
316
316
|
|
@@ -325,49 +325,70 @@ contract InstanceService is
|
|
325
325
|
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
326
326
|
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
327
327
|
if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
|
328
|
+
if(_masterInstanceRequestSet != address(0)) { revert ErrorInstanceServiceMasterRequestSetAlreadySet(); }
|
328
329
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
329
330
|
|
330
331
|
{
|
331
332
|
IInstance instance = IInstance(instanceAddress);
|
332
333
|
address accessManagerAddress = instance.authority();
|
333
334
|
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
334
|
-
address instanceAdminAddress = address(instanceAdmin);
|
335
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
336
|
-
address instanceReaderAddress = address(instanceReader);
|
337
|
-
BundleSet bundleSet = instance.getBundleSet();
|
338
|
-
address bundleSetAddress = address(bundleSet);
|
339
|
-
RiskSet riskSet = instance.getRiskSet();
|
340
|
-
address riskSetAddress = address(riskSet);
|
341
|
-
InstanceStore instanceStore = instance.getInstanceStore();
|
342
|
-
address instanceStoreAddress = address(instanceStore);
|
343
|
-
ProductStore productStore = instance.getProductStore();
|
344
|
-
address productStoreAddress = address(productStore);
|
345
|
-
|
346
|
-
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
347
|
-
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
348
|
-
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
349
|
-
if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
350
|
-
if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
|
351
|
-
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
352
|
-
if(productStoreAddress == address(0)) { revert ErrorInstanceServiceProductStoreZero(); } // TODO: rename exception
|
353
335
|
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
336
|
+
{
|
337
|
+
address instanceAdminAddress = address(instanceAdmin);
|
338
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
339
|
+
address instanceReaderAddress = address(instanceReader);
|
340
|
+
|
341
|
+
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
342
|
+
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
343
|
+
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
344
|
+
|
345
|
+
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
346
|
+
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
347
|
+
|
348
|
+
_masterAccessManager = accessManagerAddress;
|
349
|
+
_masterInstanceAdmin = instanceAdminAddress;
|
350
|
+
_masterInstance = instanceAddress;
|
351
|
+
_masterInstanceReader = instanceReaderAddress;
|
352
|
+
}
|
353
|
+
|
354
|
+
{
|
355
|
+
BundleSet bundleSet = instance.getBundleSet();
|
356
|
+
address bundleSetAddress = address(bundleSet);
|
357
|
+
RiskSet riskSet = instance.getRiskSet();
|
358
|
+
address riskSetAddress = address(riskSet);
|
359
|
+
RequestSet requestSet = instance.getRequestSet();
|
360
|
+
address requestSetAddress = address(requestSet);
|
361
|
+
|
362
|
+
if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
363
|
+
if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
|
364
|
+
if(requestSetAddress == address(0)) { revert ErrorInstanceServiceRequestSetZero(); }
|
365
|
+
if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
366
|
+
if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
|
367
|
+
if(requestSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRequestSetAuthorityMismatch(); }
|
368
|
+
if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
|
369
|
+
if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
|
370
|
+
if(requestSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRequestSetInstanceMismatch(); }
|
371
|
+
|
372
|
+
_masterInstanceBundleSet = bundleSetAddress;
|
373
|
+
_masterInstanceRiskSet = riskSetAddress;
|
374
|
+
_masterInstanceRequestSet = requestSetAddress;
|
375
|
+
}
|
376
|
+
|
377
|
+
{
|
378
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
379
|
+
address instanceStoreAddress = address(instanceStore);
|
380
|
+
ProductStore productStore = instance.getProductStore();
|
381
|
+
address productStoreAddress = address(productStore);
|
382
|
+
|
383
|
+
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
384
|
+
if(productStoreAddress == address(0)) { revert ErrorInstanceServiceProductStoreZero(); } // TODO: rename exception
|
385
|
+
|
386
|
+
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
387
|
+
if(productStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceProductStoreAuthorityMismatch(); }
|
388
|
+
|
389
|
+
_masterInstanceStore = instanceStoreAddress;
|
390
|
+
_masterProductStore = productStoreAddress;
|
391
|
+
}
|
371
392
|
}
|
372
393
|
|
373
394
|
{
|
@@ -377,7 +398,7 @@ contract InstanceService is
|
|
377
398
|
|
378
399
|
emit LogInstanceServiceMasterInstanceRegistered(
|
379
400
|
masterInstanceNftId, _masterInstance, _masterInstanceAdmin, _masterAccessManager,
|
380
|
-
_masterInstanceReader, _masterInstanceBundleSet, _masterInstanceRiskSet, _masterInstanceStore, _masterProductStore);
|
401
|
+
_masterInstanceReader, _masterInstanceBundleSet, _masterInstanceRiskSet, _masterInstanceRequestSet, _masterInstanceStore, _masterProductStore);
|
381
402
|
}
|
382
403
|
}
|
383
404
|
|
@@ -394,12 +415,10 @@ contract InstanceService is
|
|
394
415
|
InstanceReader instanceReader = InstanceReader(instanceReaderAddress);
|
395
416
|
if(instanceReader.getInstance() != IInstance(_masterInstance)) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch(); }
|
396
417
|
|
397
|
-
address oldMasterInstanceReaderAddress = _masterInstanceReader;
|
398
418
|
_masterInstanceReader = instanceReaderAddress;
|
399
419
|
|
400
420
|
emit LogInstanceServiceMasterInstanceReaderUpgraded(
|
401
421
|
getRegistry().getNftIdForAddress(_masterInstance),
|
402
|
-
oldMasterInstanceReaderAddress,
|
403
422
|
instanceReaderAddress);
|
404
423
|
}
|
405
424
|
|
@@ -451,6 +470,7 @@ contract InstanceService is
|
|
451
470
|
productStore: ProductStore(Clones.clone(address(_masterProductStore))),
|
452
471
|
bundleSet: BundleSet(Clones.clone(_masterInstanceBundleSet)),
|
453
472
|
riskSet: RiskSet(Clones.clone(_masterInstanceRiskSet)),
|
473
|
+
requestSet: RequestSet(Clones.clone(address(_masterInstanceRequestSet))),
|
454
474
|
instanceReader: InstanceReader(Clones.clone(address(_masterInstanceReader)))
|
455
475
|
}),
|
456
476
|
getRegistry(),
|
@@ -0,0 +1,63 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IComponents} from "./module/IComponents.sol";
|
5
|
+
|
6
|
+
import {Key32} from "../type/Key32.sol";
|
7
|
+
import {LibNftIdSet} from "../type/NftIdSet.sol";
|
8
|
+
import {LibRequestIdSet} from "../type/RequestIdSet.sol";
|
9
|
+
import {NftId} from "../type/NftId.sol";
|
10
|
+
import {ObjectSet} from "./base/ObjectSet.sol";
|
11
|
+
import {ObjectSetHelperLib} from "./base/ObjectSetHelperLib.sol";
|
12
|
+
import {RequestId, RequestIdLib} from "../type/RequestId.sol";
|
13
|
+
|
14
|
+
contract RequestSet is
|
15
|
+
ObjectSet
|
16
|
+
{
|
17
|
+
using LibNftIdSet for LibNftIdSet.Set;
|
18
|
+
using LibRequestIdSet for LibRequestIdSet.Set;
|
19
|
+
|
20
|
+
event LogRequestSetRequestAdded(NftId indexed oracleNftId, RequestId indexed requestId);
|
21
|
+
event LogRequestSetRequestRemoved(NftId indexed oracleNftId, RequestId indexed requestId);
|
22
|
+
|
23
|
+
error ErrorRequestSetOracleNotRegistered(NftId oracleNftId);
|
24
|
+
|
25
|
+
/// @dev add a new request to a oracle registerd with this instance
|
26
|
+
// the corresponding oracles existence is checked via instance reader
|
27
|
+
function add(NftId oracleNftId, RequestId requestId) external restricted() {
|
28
|
+
IComponents.ComponentInfo memory componentInfo = ObjectSetHelperLib.getComponentInfo(_instanceAddress, oracleNftId);
|
29
|
+
|
30
|
+
// ensure pool is registered with instance
|
31
|
+
if (bytes(componentInfo.name).length == 0) {
|
32
|
+
revert ErrorRequestSetOracleNotRegistered(oracleNftId);
|
33
|
+
}
|
34
|
+
|
35
|
+
_add(oracleNftId, _toRequestKey32(requestId));
|
36
|
+
emit LogRequestSetRequestAdded(oracleNftId, requestId);
|
37
|
+
}
|
38
|
+
|
39
|
+
function remove(NftId oracleNftId, RequestId requestId) external restricted() {
|
40
|
+
_remove(oracleNftId, _toRequestKey32(requestId));
|
41
|
+
emit LogRequestSetRequestRemoved(oracleNftId, requestId);
|
42
|
+
}
|
43
|
+
|
44
|
+
function _toRequestKey32(RequestId requestId) private pure returns (Key32) {
|
45
|
+
return requestId.toKey32();
|
46
|
+
}
|
47
|
+
|
48
|
+
function activeRequests(NftId oracleNftId) external view returns (uint256 numberOfRequests) {
|
49
|
+
return _objects(oracleNftId);
|
50
|
+
}
|
51
|
+
|
52
|
+
function activeRequestAt(NftId oracleNftId, uint256 idx) external view returns (RequestId requestId) {
|
53
|
+
return _toRequestId(_getActiveObject(oracleNftId, idx));
|
54
|
+
}
|
55
|
+
|
56
|
+
function contains(NftId oracleNftId, RequestId requestId) external view returns (bool) {
|
57
|
+
return _contains(oracleNftId, _toRequestKey32(requestId));
|
58
|
+
}
|
59
|
+
|
60
|
+
function _toRequestId(Key32 key) private pure returns (RequestId) {
|
61
|
+
return RequestIdLib.toRequestId(key.toKeyId());
|
62
|
+
}
|
63
|
+
}
|
@@ -7,4 +7,5 @@ string constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
|
7
7
|
string constant PRODUCT_STORE_TARGET_NAME = "ProductStore";
|
8
8
|
string constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
9
9
|
string constant RISK_SET_TARGET_NAME = "RiskSet";
|
10
|
+
string constant REQUEST_SET_TARGET_NAME = "RequestSet";
|
10
11
|
|
@@ -43,6 +43,14 @@ contract ObjectSet is
|
|
43
43
|
activeSet.add(key);
|
44
44
|
}
|
45
45
|
|
46
|
+
function _remove(NftId componentNftId, Key32 key) internal {
|
47
|
+
LibKey32Set.Set storage allSet = _allObjects[componentNftId];
|
48
|
+
LibKey32Set.Set storage activeSet = _activeObjects[componentNftId];
|
49
|
+
|
50
|
+
allSet.remove(key);
|
51
|
+
activeSet.remove(key);
|
52
|
+
}
|
53
|
+
|
46
54
|
function _activate(NftId componentNftId, Key32 key) internal {
|
47
55
|
_activeObjects[componentNftId].add(key);
|
48
56
|
}
|
@@ -2,6 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IBundle} from "../module/IBundle.sol";
|
5
|
+
import {IComponents} from "../module/IComponents.sol";
|
5
6
|
import {IInstance} from "../IInstance.sol";
|
6
7
|
import {IRisk} from "../module/IRisk.sol";
|
7
8
|
import {NftId} from "../../type/NftId.sol";
|
@@ -11,7 +12,6 @@ import {RiskId} from "../../type/RiskId.sol";
|
|
11
12
|
library ObjectSetHelperLib {
|
12
13
|
|
13
14
|
function getRiskInfo(address instanceAddress, RiskId riskId) public view returns (IRisk.RiskInfo memory) {
|
14
|
-
|
15
15
|
return IInstance(instanceAddress).getInstanceReader().getRiskInfo(riskId);
|
16
16
|
}
|
17
17
|
|
@@ -27,4 +27,8 @@ library ObjectSetHelperLib {
|
|
27
27
|
return getBundleInfo(instanceAddress, bundleNftId).poolNftId;
|
28
28
|
}
|
29
29
|
|
30
|
+
function getComponentInfo(address instanceAddress, NftId componentNftId) public view returns (IComponents.ComponentInfo memory) {
|
31
|
+
return IInstance(instanceAddress).getInstanceReader().getComponentInfo(componentNftId);
|
32
|
+
}
|
33
|
+
|
30
34
|
}
|
@@ -13,6 +13,10 @@ import {Timestamp} from "../type/Timestamp.sol";
|
|
13
13
|
interface IOracleComponent is IInstanceLinkedComponent {
|
14
14
|
error ErrorOracleNotImplemented(string methodName);
|
15
15
|
|
16
|
+
event LogOracleRequestReceived(RequestId indexed requestId, NftId indexed requesterId);
|
17
|
+
event LogOracleRequestCancelled(RequestId indexed requestId);
|
18
|
+
|
19
|
+
|
16
20
|
/// @dev callback method for requesting some data from the oracle
|
17
21
|
function request(
|
18
22
|
RequestId requestId,
|
@@ -30,4 +34,10 @@ interface IOracleComponent is IInstanceLinkedComponent {
|
|
30
34
|
|
31
35
|
/// @dev returns true iff the component needs to be called when selling/renewing policis
|
32
36
|
function isVerifying() external view returns (bool verifying);
|
37
|
+
|
38
|
+
function activeRequests() external view returns(uint256 numberOfRequests);
|
39
|
+
|
40
|
+
function getActiveRequest(uint256 idx) external view returns(RequestId requestId);
|
41
|
+
|
42
|
+
function isActiveRequest(RequestId requestId) external view returns(bool isActive);
|
33
43
|
}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {COMPONENT,
|
5
|
+
import {COMPONENT, ORACLE} from "../type/ObjectType.sol";
|
6
6
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
7
7
|
import {IComponentService} from "../shared/IComponentService.sol";
|
8
8
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
@@ -74,7 +74,32 @@ abstract contract Oracle is
|
|
74
74
|
revert ErrorOracleNotImplemented("withdrawFees");
|
75
75
|
}
|
76
76
|
|
77
|
+
function activeRequests()
|
78
|
+
external
|
79
|
+
view
|
80
|
+
returns(uint256 numberOfRequests)
|
81
|
+
{
|
82
|
+
return _getInstanceReader().getActiveRequests(getNftId());
|
83
|
+
}
|
77
84
|
|
85
|
+
|
86
|
+
function getActiveRequest(uint256 idx)
|
87
|
+
external
|
88
|
+
view
|
89
|
+
returns(RequestId requestId)
|
90
|
+
{
|
91
|
+
return _getInstanceReader().getActiveRequestAt(getNftId(), idx);
|
92
|
+
}
|
93
|
+
|
94
|
+
function isActiveRequest(RequestId requestId)
|
95
|
+
external
|
96
|
+
view
|
97
|
+
returns(bool isActive)
|
98
|
+
{
|
99
|
+
return _getInstanceReader().isRequestActive(getNftId(), requestId);
|
100
|
+
}
|
101
|
+
|
102
|
+
// solhint-disable-next-line func-name-mixedcase
|
78
103
|
function __Oracle_init(
|
79
104
|
address registry,
|
80
105
|
NftId productNftId,
|
@@ -102,10 +127,21 @@ abstract contract Oracle is
|
|
102
127
|
_registerInterface(type(IOracleComponent).interfaceId);
|
103
128
|
}
|
104
129
|
|
130
|
+
/// @dev Internal function for handling oracle responses.
|
131
|
+
/// Default implementation sends response back to oracle service.
|
132
|
+
/// Use this function in use case specific external/public functions to handle use case specific response handling.
|
133
|
+
function _respond(
|
134
|
+
RequestId requestId,
|
135
|
+
bytes memory responseData
|
136
|
+
)
|
137
|
+
internal
|
138
|
+
virtual
|
139
|
+
{
|
140
|
+
_getOracleStorage()._oracleService.respond(requestId, responseData);
|
141
|
+
}
|
105
142
|
|
106
|
-
/// @dev
|
107
|
-
///
|
108
|
-
/// Overwrite this function to implement use case specific handling for oracle calls.
|
143
|
+
/// @dev use case specific handling of oracle requests
|
144
|
+
/// for now only log is emitted to verify that request has been received by oracle component
|
109
145
|
function _request(
|
110
146
|
RequestId requestId,
|
111
147
|
NftId requesterId,
|
@@ -113,38 +149,26 @@ abstract contract Oracle is
|
|
113
149
|
Timestamp expiryAt
|
114
150
|
)
|
115
151
|
internal
|
116
|
-
virtual
|
152
|
+
virtual
|
117
153
|
{
|
154
|
+
emit LogOracleRequestReceived(requestId, requesterId);
|
118
155
|
}
|
119
156
|
|
120
157
|
|
121
|
-
/// @dev
|
122
|
-
///
|
123
|
-
/// Overwrite this function to implement use case specific cancelling.
|
158
|
+
/// @dev use case specific handling of oracle requests
|
159
|
+
/// for now only log is emitted to verify that cancelling has been received by oracle component
|
124
160
|
function _cancel(
|
125
161
|
RequestId requestId
|
126
162
|
)
|
127
163
|
internal
|
128
|
-
virtual
|
129
|
-
{
|
130
|
-
}
|
131
|
-
|
132
|
-
|
133
|
-
/// @dev Internal function for handling oracle responses.
|
134
|
-
/// Default implementation sends response back to oracle service.
|
135
|
-
/// Use this function in use case specific external/public functions to handle use case specific response handling.
|
136
|
-
function _respond(
|
137
|
-
RequestId requestId,
|
138
|
-
bytes memory responseData
|
139
|
-
)
|
140
|
-
internal
|
141
|
-
virtual
|
164
|
+
virtual
|
142
165
|
{
|
143
|
-
|
166
|
+
emit LogOracleRequestCancelled(requestId);
|
144
167
|
}
|
145
168
|
|
146
169
|
|
147
170
|
function _getOracleStorage() private pure returns (OracleStorage storage $) {
|
171
|
+
// solhint-disable-next-line no-inline-assembly
|
148
172
|
assembly {
|
149
173
|
$.slot := ORACLE_STORAGE_LOCATION_V1
|
150
174
|
}
|
@@ -2,16 +2,14 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {ContractLib} from "../shared/ContractLib.sol";
|
5
|
-
import {IComponent} from "../shared/IComponent.sol";
|
6
5
|
import {IInstance} from "../instance/IInstance.sol";
|
7
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
8
6
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
9
7
|
import {IOracle} from "./IOracle.sol";
|
10
8
|
import {IOracleComponent} from "./IOracleComponent.sol";
|
11
9
|
import {IOracleService} from "./IOracleService.sol";
|
12
10
|
import {IRegistry} from "../registry/IRegistry.sol";
|
13
11
|
import {NftId} from "../type/NftId.sol";
|
14
|
-
import {ObjectType,
|
12
|
+
import {ObjectType, ORACLE, PRODUCT} from "../type/ObjectType.sol";
|
15
13
|
import {RequestId} from "../type/RequestId.sol";
|
16
14
|
import {Service} from "../shared/Service.sol";
|
17
15
|
import {StateId, ACTIVE, KEEP_STATE, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
|
@@ -56,7 +54,7 @@ contract OracleService is
|
|
56
54
|
// get and check active caller
|
57
55
|
(
|
58
56
|
IRegistry.ObjectInfo memory requesterInfo,
|
59
|
-
address
|
57
|
+
address instanceAddress
|
60
58
|
) = ContractLib.getAndVerifyAnyComponent(
|
61
59
|
getRegistry(), msg.sender, true);
|
62
60
|
|
@@ -69,7 +67,7 @@ contract OracleService is
|
|
69
67
|
// effects
|
70
68
|
{
|
71
69
|
// create request info
|
72
|
-
IOracle.RequestInfo memory
|
70
|
+
IOracle.RequestInfo memory requestInfo = IOracle.RequestInfo({
|
73
71
|
requesterNftId: requesterNftId,
|
74
72
|
callbackMethodName: callbackMethodName,
|
75
73
|
oracleNftId: oracleNftId,
|
@@ -80,8 +78,9 @@ contract OracleService is
|
|
80
78
|
isCancelled: false
|
81
79
|
});
|
82
80
|
|
83
|
-
// store request with instance
|
84
|
-
requestId = IInstance(
|
81
|
+
// store request with instance
|
82
|
+
requestId = IInstance(instanceAddress).getInstanceStore().createRequest(requestInfo);
|
83
|
+
IInstance(instanceAddress).getRequestSet().add(oracleNftId, requestId);
|
85
84
|
}
|
86
85
|
|
87
86
|
emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
|
@@ -116,22 +115,23 @@ contract OracleService is
|
|
116
115
|
NftId oracleNftId = info.nftId;
|
117
116
|
IInstance instance = IInstance(instanceAddress);
|
118
117
|
bool callerIsOracle = true;
|
119
|
-
IOracle.RequestInfo memory
|
120
|
-
|
121
|
-
|
118
|
+
IOracle.RequestInfo memory requestInfo = _checkAndGetRequestInfo(instance, requestId, oracleNftId, callerIsOracle);
|
119
|
+
requestInfo.responseData = responseData;
|
120
|
+
requestInfo.respondedAt = TimestampLib.current();
|
122
121
|
|
123
122
|
instance.getInstanceStore().updateRequest(
|
124
|
-
requestId,
|
123
|
+
requestId, requestInfo, KEEP_STATE());
|
125
124
|
|
126
125
|
IRegistry.ObjectInfo memory requesterInfo = getRegistry().getObjectInfo(
|
127
|
-
|
126
|
+
requestInfo.requesterNftId);
|
128
127
|
|
129
128
|
string memory functionSignature = string(
|
130
129
|
abi.encodePacked(
|
131
|
-
|
130
|
+
requestInfo.callbackMethodName,
|
132
131
|
"(uint64,bytes)"
|
133
132
|
));
|
134
133
|
|
134
|
+
// solhint-disable-next-line avoid-low-level-calls
|
135
135
|
(success, ) = requesterInfo.objectAddress.call(
|
136
136
|
abi.encodeWithSignature(
|
137
137
|
functionSignature,
|
@@ -141,6 +141,7 @@ contract OracleService is
|
|
141
141
|
// check that calling requestor was successful
|
142
142
|
if (success) {
|
143
143
|
instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
|
144
|
+
instance.getRequestSet().remove(oracleNftId, requestId);
|
144
145
|
} else {
|
145
146
|
instance.getInstanceStore().updateRequestState(requestId, FAILED());
|
146
147
|
emit LogOracleServiceDeliveryFailed(requestId, requesterInfo.objectAddress, functionSignature);
|
@@ -164,24 +165,26 @@ contract OracleService is
|
|
164
165
|
NftId requesterNftId = info.nftId;
|
165
166
|
IInstance instance = IInstance(instanceAddress);
|
166
167
|
bool callerIsOracle = false;
|
167
|
-
IOracle.RequestInfo memory
|
168
|
+
IOracle.RequestInfo memory requestInfo = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
|
168
169
|
|
169
170
|
// attempt to deliver response to requester
|
170
171
|
string memory functionSignature = string(
|
171
172
|
abi.encodePacked(
|
172
|
-
|
173
|
+
requestInfo.callbackMethodName,
|
173
174
|
"(uint64,bytes)"
|
174
175
|
));
|
175
176
|
|
176
|
-
|
177
|
+
// solhint-disable-next-line avoid-low-level-calls
|
178
|
+
(bool success, ) = info.objectAddress.call(
|
177
179
|
abi.encodeWithSignature(
|
178
180
|
functionSignature,
|
179
181
|
requestId,
|
180
|
-
|
182
|
+
requestInfo.responseData));
|
181
183
|
|
182
184
|
// check that calling requestor was successful
|
183
185
|
if (success) {
|
184
186
|
instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
|
187
|
+
instance.getRequestSet().remove(requestInfo.oracleNftId, requestId);
|
185
188
|
emit LogOracleServiceResponseResent(requestId, requesterNftId);
|
186
189
|
} else {
|
187
190
|
emit LogOracleServiceDeliveryFailed(requestId, info.objectAddress, functionSignature);
|
@@ -204,20 +207,20 @@ contract OracleService is
|
|
204
207
|
IInstance instance = IInstance(instanceAddress);
|
205
208
|
bool callerIsOracle = false;
|
206
209
|
// TODO property isCancelled and state update to CANCELLED are redundant, get rid of isCancelled
|
207
|
-
IOracle.RequestInfo memory
|
208
|
-
|
210
|
+
IOracle.RequestInfo memory requestInfo = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
|
211
|
+
requestInfo.isCancelled = true;
|
209
212
|
|
210
|
-
instance.getInstanceStore().updateRequest(requestId,
|
213
|
+
instance.getInstanceStore().updateRequest(requestId, requestInfo, CANCELLED());
|
214
|
+
instance.getRequestSet().remove(requestInfo.oracleNftId, requestId);
|
211
215
|
|
212
216
|
// call oracle component
|
213
217
|
// TODO add check that oracle is active?
|
214
|
-
address oracleAddress = getRegistry().getObjectAddress(
|
218
|
+
address oracleAddress = getRegistry().getObjectAddress(requestInfo.oracleNftId);
|
215
219
|
IOracleComponent(oracleAddress).cancel(requestId);
|
216
220
|
|
217
221
|
emit LogOracleServiceRequestCancelled(requestId, requesterNftId);
|
218
222
|
}
|
219
223
|
|
220
|
-
|
221
224
|
function _checkRequestParams(
|
222
225
|
IRegistry registry,
|
223
226
|
NftId oracleNftId,
|
@@ -72,4 +72,10 @@ library RequestIdLib {
|
|
72
72
|
function toKeyId(RequestId id) public pure returns (KeyId keyId) {
|
73
73
|
return KeyId.wrap(bytes31(uint248(RequestId.unwrap(id))));
|
74
74
|
}
|
75
|
+
|
76
|
+
function toRequestId(KeyId keyId) public pure returns (RequestId requestId) {
|
77
|
+
uint248 keyIdInt = uint248(bytes31(KeyId.unwrap(keyId)));
|
78
|
+
assert(keyIdInt < type(uint64).max);
|
79
|
+
return RequestId.wrap(uint64(keyIdInt));
|
80
|
+
}
|
75
81
|
}
|
package/package.json
CHANGED