@etherisc/gif-next 3.0.0-a511887-523 → 3.0.0-ab0fcb2-112
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +59 -107
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +59 -156
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +13 -61
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +58 -90
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +80 -59
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
- 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 +14 -46
- 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 +45 -85
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +13 -61
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +119 -175
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +89 -190
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +13 -61
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +13 -61
- 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 +54 -103
- 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 +104 -153
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +18 -18
- 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 +604 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1255 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +825 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1528 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +820 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2635 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +820 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +57 -119
- 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 +51 -113
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +59 -121
- 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 +63 -125
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +18 -18
- 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 +49 -54
- 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 +14 -62
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +13 -61
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +42 -95
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +158 -182
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +2 -2
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +179 -77
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +51 -99
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +55 -152
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +53 -58
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +3 -8
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +41 -81
- 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 +13 -61
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +13 -103
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -61
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +61 -175
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +60 -169
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +13 -61
- 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 +95 -151
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +78 -179
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -61
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +13 -61
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +25 -104
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +13 -61
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +24 -252
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +143 -190
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +89 -170
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +59 -99
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +59 -152
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +13 -61
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +18 -18
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +103 -151
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +81 -178
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -61
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -61
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -82
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -61
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -61
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +13 -61
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +83 -152
- 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 +71 -168
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +71 -119
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +65 -162
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +13 -61
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -95
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +58 -147
- 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/IRegistryService.sol/IRegistryService.json +13 -61
- 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 +140 -169
- 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 +51 -99
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +55 -157
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +146 -183
- 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 +98 -185
- 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 +13 -71
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +13 -61
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +81 -137
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +70 -171
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +411 -139
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +691 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +13 -61
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +13 -61
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -61
- 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 +1 -70
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +1 -54
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +13 -61
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +1 -54
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +13 -61
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.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/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -61
- 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 +15 -76
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +3 -56
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +13 -61
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +3 -79
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +13 -61
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +13 -61
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +13 -61
- 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 +73 -121
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +26 -31
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +66 -163
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +5 -64
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +49 -97
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +54 -151
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +200 -266
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +27 -19
- 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/ChainId.sol/ChainIdLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +29 -121
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +3 -4
- package/contracts/accounting/AccountingServiceManager.sol +1 -3
- package/contracts/authorization/AccessAdmin.sol +3 -3
- package/contracts/authorization/AccessAdminLib.sol +14 -11
- package/contracts/authorization/IAccessAdmin.sol +1 -0
- package/contracts/distribution/BasicDistribution.sol +0 -2
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +0 -2
- package/contracts/distribution/DistributionService.sol +14 -13
- package/contracts/distribution/DistributionServiceManager.sol +1 -3
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +0 -4
- package/contracts/examples/flight/FlightLib.sol +322 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightOracle.sol +163 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
- package/contracts/examples/flight/FlightPool.sol +85 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +650 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +45 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleOracle.sol +0 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +0 -4
- package/contracts/instance/IInstance.sol +1 -1
- package/contracts/instance/Instance.sol +6 -7
- package/contracts/instance/InstanceAdmin.sol +6 -8
- package/contracts/instance/InstanceReader.sol +40 -18
- package/contracts/instance/InstanceService.sol +14 -16
- package/contracts/instance/InstanceServiceManager.sol +1 -3
- package/contracts/instance/base/Cloneable.sol +4 -10
- package/contracts/instance/base/ObjectSet.sol +2 -2
- package/contracts/oracle/BasicOracle.sol +0 -2
- package/contracts/oracle/IOracleService.sol +12 -16
- package/contracts/oracle/Oracle.sol +0 -2
- package/contracts/oracle/OracleService.sol +36 -66
- package/contracts/oracle/OracleServiceManager.sol +1 -3
- package/contracts/pool/BasicPool.sol +2 -4
- package/contracts/pool/BasicPoolAuthorization.sol +1 -1
- package/contracts/pool/BundleService.sol +20 -14
- package/contracts/pool/BundleServiceManager.sol +2 -4
- package/contracts/pool/IPoolService.sol +5 -6
- package/contracts/pool/Pool.sol +1 -3
- package/contracts/pool/PoolLib.sol +4 -104
- package/contracts/pool/PoolService.sol +66 -100
- package/contracts/pool/PoolServiceManager.sol +1 -3
- package/contracts/product/ApplicationService.sol +9 -29
- package/contracts/product/ApplicationServiceManager.sol +1 -3
- package/contracts/product/BasicProduct.sol +0 -2
- package/contracts/product/BasicProductAuthorization.sol +4 -3
- package/contracts/product/ClaimService.sol +9 -33
- package/contracts/product/ClaimServiceManager.sol +2 -4
- package/contracts/product/IPolicyService.sol +0 -1
- package/contracts/product/PolicyService.sol +43 -56
- package/contracts/product/PolicyServiceManager.sol +1 -3
- package/contracts/product/PricingService.sol +6 -7
- package/contracts/product/PricingServiceManager.sol +1 -3
- package/contracts/product/Product.sol +0 -2
- package/contracts/product/RiskService.sol +7 -39
- package/contracts/product/RiskServiceManager.sol +1 -3
- package/contracts/registry/RegistryAdmin.sol +6 -11
- package/contracts/registry/RegistryAuthorization.sol +2 -2
- package/contracts/registry/RegistryService.sol +14 -15
- package/contracts/registry/RegistryServiceManager.sol +1 -8
- package/contracts/registry/ReleaseAdmin.sol +2 -11
- package/contracts/registry/ReleaseRegistry.sol +14 -26
- package/contracts/registry/TokenRegistry.sol +6 -15
- package/contracts/shared/Component.sol +3 -5
- package/contracts/shared/ComponentService.sol +18 -30
- package/contracts/shared/ComponentServiceManager.sol +2 -4
- package/contracts/shared/ContractLib.sol +359 -93
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -6
- package/contracts/shared/INftOwnable.sol +0 -2
- package/contracts/shared/IRegisterable.sol +6 -0
- package/contracts/shared/IRegistryLinked.sol +1 -5
- package/contracts/shared/InstanceLinkedComponent.sol +73 -22
- package/contracts/shared/NftOwnable.sol +8 -8
- package/contracts/shared/PolicyHolder.sol +0 -2
- package/contracts/shared/Registerable.sol +5 -6
- package/contracts/shared/RegistryLinked.sol +4 -30
- package/contracts/shared/Service.sol +2 -4
- package/contracts/staking/Staking.sol +22 -17
- package/contracts/staking/StakingLib.sol +3 -1
- package/contracts/staking/StakingManager.sol +0 -3
- package/contracts/staking/StakingReader.sol +9 -17
- package/contracts/staking/StakingService.sol +6 -6
- package/contracts/staking/StakingServiceManager.sol +1 -4
- package/contracts/staking/StakingStore.sol +4 -6
- package/contracts/staking/TargetHandler.sol +4 -5
- package/contracts/type/ObjectType.sol +2 -31
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/String.sol +30 -0
- package/contracts/type/Timestamp.sol +10 -1
- package/contracts/upgradeability/ProxyManager.sol +1 -5
- package/package.json +2 -1
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +0 -24
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +0 -40
@@ -5,114 +5,376 @@ import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165C
|
|
5
5
|
import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
|
6
6
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
7
7
|
|
8
|
+
import {IInstance} from "../instance/IInstance.sol";
|
9
|
+
import {IOracleComponent} from "../oracle/IOracleComponent.sol";
|
8
10
|
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
9
11
|
import {IRegistry} from "../registry/IRegistry.sol";
|
10
12
|
import {IService} from "../shared/IService.sol";
|
11
13
|
|
12
14
|
import {ChainId} from "../type/ChainId.sol";
|
13
15
|
import {NftId} from "../type/NftId.sol";
|
14
|
-
import {ObjectType, INSTANCE, PRODUCT, DISTRIBUTION, ORACLE, POOL} from "../type/ObjectType.sol";
|
16
|
+
import {ObjectType, INSTANCE, COMPONENT, PRODUCT, DISTRIBUTION, ORACLE, POOL, POLICY, BUNDLE} from "../type/ObjectType.sol";
|
17
|
+
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
15
18
|
import {VersionPart} from "../type/Version.sol";
|
16
19
|
|
17
20
|
interface ITargetHelper {
|
18
21
|
function isTargetLocked(address target) external view returns (bool);
|
19
22
|
}
|
20
23
|
|
21
|
-
|
22
|
-
function getInstanceAdmin() external view returns (ITargetHelper);
|
23
|
-
}
|
24
|
+
library ContractLib {
|
24
25
|
|
25
|
-
|
26
|
-
|
27
|
-
|
26
|
+
error ErrorContractLibCallerNotRegistered(address caller);
|
27
|
+
error ErrorContractLibCallerNotComponent(/*address caller, */NftId callerNftId, ObjectType callerType);
|
28
|
+
error ErrorContractLibParentNotInstance(/*address component, */NftId componentNftId, NftId parentNftId/*, ObjectType parentType*/);
|
29
|
+
error ErrorContractLibParentNotProduct(/*address component, */NftId componentNftId, NftId parentNftId/*, ObjectType parentType*/);
|
30
|
+
error ErrorContractLibComponentTypeMismatch(/*address component, */NftId componentNftId, ObjectType expectedType, ObjectType actualType);
|
31
|
+
error ErrorContractLibComponentReleaseMismatch(/*address component, */NftId componentNftId, VersionPart expectedRelease, VersionPart actualRelease);
|
32
|
+
error ErrorContractLibComponentInactive(/*address component, */NftId componentNftId);
|
28
33
|
|
29
|
-
|
34
|
+
error ErrorContractLibObjectNotRegistered(NftId objectNftId);
|
35
|
+
error ErrorContractLibObjectTypeMismatch(NftId objectNftId, ObjectType expectedType, ObjectType actualType);
|
36
|
+
error ErrorContractLibObjectReleaseMismatch(NftId objectNftId, VersionPart expectedRelease, VersionPart actualRelease);
|
37
|
+
error ErrorContractLibObjectParentMismatch(NftId objectNftId, NftId expectedParentNftId, NftId actualParentNftId);
|
38
|
+
|
39
|
+
error ErrorContractLibParentsMismatch(NftId componentNftId, NftId componentParentNftId, NftId objectNftId, NftId objectParentNftId);
|
30
40
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
41
|
+
|
42
|
+
|
43
|
+
// update registry address whenever it changes
|
44
|
+
address public constant REGISTRY_ADDRESS = address(0x345cA3e014Aaf5dcA488057592ee47305D9B3e10);
|
45
|
+
|
46
|
+
function getRegistry() internal pure returns (IRegistry) {
|
47
|
+
return IRegistry(REGISTRY_ADDRESS);
|
48
|
+
}
|
49
|
+
|
50
|
+
function getAndVerifyProduct(VersionPart expectedRelease)
|
51
|
+
external
|
52
|
+
view
|
53
|
+
returns (
|
54
|
+
NftId, // productNftId
|
55
|
+
IInstance // instance,
|
56
|
+
)
|
57
|
+
{
|
58
|
+
return getAndVerifyComponent(
|
59
|
+
msg.sender,
|
60
|
+
PRODUCT(),
|
61
|
+
expectedRelease,
|
62
|
+
true); // only active product
|
63
|
+
}
|
64
|
+
|
65
|
+
function getAndVerifyPool(VersionPart expectedRelease)
|
66
|
+
external
|
67
|
+
view
|
68
|
+
returns (
|
69
|
+
NftId, // poolNftId
|
70
|
+
IInstance // instance,
|
71
|
+
)
|
72
|
+
{
|
73
|
+
return getAndVerifyComponent(
|
74
|
+
msg.sender,
|
75
|
+
POOL(),
|
76
|
+
expectedRelease,
|
77
|
+
true); // only active pool
|
78
|
+
}
|
79
|
+
|
80
|
+
function getAndVerifyProductForPolicy(NftId policyNftId, VersionPart expectedRelease)
|
81
|
+
external
|
82
|
+
view
|
83
|
+
returns (
|
84
|
+
NftId, // productNftId
|
85
|
+
IInstance // instance,
|
86
|
+
)
|
87
|
+
{
|
88
|
+
return getAndVerifyComponentWithChild(
|
89
|
+
msg.sender, // product
|
90
|
+
true, // only active product
|
91
|
+
policyNftId, // child nft id
|
92
|
+
POLICY(), // child must be policy
|
93
|
+
expectedRelease);
|
94
|
+
}
|
95
|
+
|
96
|
+
function getAndVerifyPoolForBundle(NftId bundleNftId, VersionPart expectedRelease)
|
97
|
+
external
|
98
|
+
view
|
99
|
+
returns (
|
100
|
+
NftId, // poolNftId
|
101
|
+
IInstance // instance,
|
102
|
+
)
|
103
|
+
{
|
104
|
+
return getAndVerifyComponentWithChild({
|
105
|
+
component: msg.sender, // pool
|
106
|
+
onlyActive: true, // only active pool
|
107
|
+
childNftId: bundleNftId, // child nft id
|
108
|
+
expectedChildType: BUNDLE(), // child must be bundle
|
109
|
+
expectedRelease: expectedRelease});
|
110
|
+
}
|
111
|
+
|
112
|
+
function getAndVerifyPoolForPolicy(NftId policyNftId, VersionPart expectedRelease)
|
113
|
+
external
|
114
|
+
view
|
115
|
+
returns (
|
116
|
+
NftId poolNftId,
|
117
|
+
IInstance instance
|
118
|
+
)
|
119
|
+
{
|
120
|
+
(poolNftId,, instance) = getAndVerifyComponentAndObject({
|
121
|
+
component: msg.sender, // pool
|
122
|
+
expectedComponentType: POOL(),
|
123
|
+
onlyActive: true,
|
124
|
+
objectNftId: policyNftId,
|
125
|
+
expectedObjectType: POLICY(),
|
126
|
+
expectedRelease: expectedRelease
|
127
|
+
});
|
128
|
+
}
|
129
|
+
|
130
|
+
function getAndVerifyComponentAndOracle(
|
131
|
+
NftId oracleNftId,
|
132
|
+
VersionPart expectedRelease
|
133
|
+
)
|
134
|
+
external
|
135
|
+
view
|
136
|
+
returns (
|
137
|
+
NftId requesterNftId,
|
138
|
+
IOracleComponent oracle,
|
139
|
+
IInstance instance
|
140
|
+
)
|
141
|
+
{
|
142
|
+
address oracleAddress;
|
143
|
+
(requesterNftId, oracleAddress, instance) = getAndVerifyComponentAndObject({
|
144
|
+
component: msg.sender,
|
145
|
+
expectedComponentType: COMPONENT(),
|
146
|
+
onlyActive: true,
|
147
|
+
objectNftId: oracleNftId,
|
148
|
+
expectedObjectType: ORACLE(),
|
149
|
+
expectedRelease: expectedRelease
|
150
|
+
});
|
151
|
+
|
152
|
+
oracle = IOracleComponent(oracleAddress);
|
153
|
+
}
|
37
154
|
|
38
155
|
|
39
156
|
function getInfoAndInstance(
|
40
|
-
IRegistry registry,
|
41
157
|
NftId componentNftId,
|
158
|
+
VersionPart release,
|
42
159
|
bool onlyActive
|
43
160
|
)
|
44
|
-
|
161
|
+
public
|
45
162
|
view
|
46
163
|
returns (
|
47
164
|
IRegistry.ObjectInfo memory info,
|
48
|
-
|
165
|
+
IInstance instance
|
49
166
|
)
|
50
167
|
{
|
168
|
+
IRegistry registry = getRegistry();
|
51
169
|
info = registry.getObjectInfo(componentNftId);
|
52
|
-
|
170
|
+
(, instance) = _getAndVerifyComponentAndInstance(info, info.objectType, release, onlyActive);
|
53
171
|
}
|
54
172
|
|
55
173
|
|
56
|
-
function
|
57
|
-
IRegistry registry,
|
174
|
+
function getAndVerifyComponent(
|
58
175
|
address caller,
|
176
|
+
ObjectType expectedType,
|
177
|
+
VersionPart expectedRelease,
|
59
178
|
bool onlyActive
|
60
179
|
)
|
61
|
-
|
180
|
+
public
|
62
181
|
view
|
63
182
|
returns (
|
64
|
-
|
65
|
-
|
183
|
+
NftId componentNftId,
|
184
|
+
IInstance instance
|
66
185
|
)
|
67
186
|
{
|
68
|
-
// check caller is
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
187
|
+
// check caller is registered
|
188
|
+
IRegistry.ObjectInfo memory info = _getAndVerifyObjectInfo(caller);
|
189
|
+
// check caller info
|
190
|
+
return _getAndVerifyComponentAndInstance(info, expectedType, expectedRelease, onlyActive);
|
191
|
+
}
|
192
|
+
|
193
|
+
function getAndVerifyComponentWithChild(
|
194
|
+
address component,
|
195
|
+
bool onlyActive,
|
196
|
+
NftId childNftId,
|
197
|
+
ObjectType expectedChildType, // assume valid component type
|
198
|
+
VersionPart expectedRelease
|
199
|
+
)
|
200
|
+
public
|
201
|
+
view
|
202
|
+
returns (
|
203
|
+
//IRegistry.ObjectInfo memory info, // component info
|
204
|
+
NftId componentNftId,
|
205
|
+
IInstance instance)
|
206
|
+
{
|
207
|
+
IRegistry registry = getRegistry();
|
208
|
+
IRegistry.ObjectInfo memory info = registry.getObjectInfo(childNftId);
|
209
|
+
|
210
|
+
// check child registration
|
211
|
+
if(info.nftId.eqz()) {
|
212
|
+
revert ErrorContractLibObjectNotRegistered(childNftId);
|
78
213
|
}
|
79
214
|
|
80
|
-
|
81
|
-
|
215
|
+
// check child type
|
216
|
+
if(info.objectType != expectedChildType) {
|
217
|
+
revert ErrorContractLibObjectTypeMismatch(
|
218
|
+
childNftId,
|
219
|
+
expectedChildType,
|
220
|
+
info.objectType);
|
221
|
+
}
|
82
222
|
|
223
|
+
// check child release
|
224
|
+
if(info.release != expectedRelease) {
|
225
|
+
revert ErrorContractLibObjectReleaseMismatch(
|
226
|
+
childNftId,
|
227
|
+
expectedRelease,
|
228
|
+
info.release);
|
229
|
+
}
|
83
230
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
231
|
+
info = registry.getObjectInfo(info.parentNftId);
|
232
|
+
componentNftId = info.nftId;
|
233
|
+
|
234
|
+
// check parent is component
|
235
|
+
if(info.objectAddress != component) {
|
236
|
+
revert ErrorContractLibObjectParentMismatch(
|
237
|
+
childNftId,
|
238
|
+
registry.getNftIdForAddress(component),
|
239
|
+
info.nftId);
|
240
|
+
}
|
241
|
+
|
242
|
+
// get instance
|
243
|
+
instance = getAndVerifyInstance(info);// _getAndVerifyInstance(info);
|
244
|
+
|
245
|
+
// check component is active
|
246
|
+
_checkComponentActive(
|
247
|
+
instance,
|
248
|
+
component,
|
249
|
+
componentNftId,
|
250
|
+
onlyActive);
|
251
|
+
}
|
252
|
+
|
253
|
+
/// @dev
|
254
|
+
// component is contract of type COMPONENT
|
255
|
+
// objectNftId is either contract of type COMPONENT or object of type POLICY, BUNDLE, etc.
|
256
|
+
// is either child of component or have same parent as component
|
257
|
+
function getAndVerifyComponentAndObject(
|
258
|
+
address component,
|
259
|
+
ObjectType expectedComponentType,
|
260
|
+
bool onlyActive,
|
261
|
+
NftId objectNftId,
|
262
|
+
ObjectType expectedObjectType,
|
263
|
+
VersionPart expectedRelease
|
89
264
|
)
|
90
|
-
|
265
|
+
public
|
91
266
|
view
|
92
267
|
returns (
|
93
|
-
|
94
|
-
address
|
95
|
-
|
268
|
+
NftId componentNftId,
|
269
|
+
address objectAddress, // 0 for non contracts objects
|
270
|
+
IInstance instance)
|
96
271
|
{
|
97
|
-
|
98
|
-
|
272
|
+
IRegistry registry = getRegistry();
|
273
|
+
|
274
|
+
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(component);
|
275
|
+
componentNftId = componentInfo.nftId;
|
276
|
+
|
277
|
+
// check component registered
|
278
|
+
|
279
|
+
// check component type
|
280
|
+
if(expectedComponentType != COMPONENT()) {
|
281
|
+
if(componentInfo.objectType != expectedComponentType) {
|
282
|
+
revert ErrorContractLibComponentTypeMismatch(
|
283
|
+
//component,
|
284
|
+
componentInfo.nftId,
|
285
|
+
expectedComponentType,
|
286
|
+
componentInfo.objectType);
|
287
|
+
}
|
288
|
+
} else if(
|
289
|
+
!(
|
290
|
+
componentInfo.objectType == PRODUCT() ||
|
291
|
+
componentInfo.objectType == POOL() ||
|
292
|
+
componentInfo.objectType == DISTRIBUTION() ||
|
293
|
+
componentInfo.objectType == ORACLE()
|
294
|
+
)
|
295
|
+
) {
|
296
|
+
revert ErrorContractLibCallerNotComponent(
|
297
|
+
//component,
|
298
|
+
componentInfo.nftId,
|
299
|
+
componentInfo.objectType);
|
300
|
+
}
|
301
|
+
|
302
|
+
// check component release
|
303
|
+
if(componentInfo.release != expectedRelease) {
|
304
|
+
revert ErrorContractLibComponentReleaseMismatch(
|
305
|
+
//component,
|
306
|
+
componentInfo.nftId,
|
307
|
+
expectedRelease,
|
308
|
+
componentInfo.release);
|
309
|
+
}
|
310
|
+
|
311
|
+
IRegistry.ObjectInfo memory objectInfo = registry.getObjectInfo(objectNftId);
|
312
|
+
objectAddress = objectInfo.objectAddress;
|
313
|
+
|
314
|
+
// check object type
|
315
|
+
if(objectInfo.objectType != expectedObjectType) {
|
316
|
+
revert ErrorContractLibObjectTypeMismatch(
|
317
|
+
objectNftId,
|
318
|
+
expectedObjectType,
|
319
|
+
objectInfo.objectType);
|
320
|
+
}
|
321
|
+
|
322
|
+
if(componentInfo.objectType == PRODUCT()) {
|
323
|
+
// check object parent is product
|
324
|
+
if(componentInfo.nftId != objectInfo.parentNftId) {
|
325
|
+
revert ErrorContractLibObjectParentMismatch(
|
326
|
+
objectNftId,
|
327
|
+
objectInfo.parentNftId,
|
328
|
+
componentInfo.nftId);
|
329
|
+
}
|
330
|
+
} else {
|
331
|
+
// check component parent is product
|
332
|
+
|
333
|
+
// check object parent is same product
|
334
|
+
if(componentInfo.parentNftId != objectInfo.parentNftId) {
|
335
|
+
revert ErrorContractLibParentsMismatch(
|
336
|
+
componentInfo.nftId,
|
337
|
+
componentInfo.parentNftId,
|
338
|
+
objectNftId,
|
339
|
+
objectInfo.parentNftId);
|
340
|
+
}
|
341
|
+
}
|
342
|
+
|
343
|
+
// get instance
|
344
|
+
instance = getAndVerifyInstance(componentInfo);
|
345
|
+
|
346
|
+
// check component is active
|
347
|
+
_checkComponentActive(
|
348
|
+
instance,
|
349
|
+
component,
|
350
|
+
componentNftId,
|
351
|
+
onlyActive);
|
99
352
|
}
|
100
353
|
|
101
354
|
|
102
355
|
function getInstanceForComponent(
|
103
|
-
IRegistry registry,
|
104
356
|
NftId componentNftId
|
105
357
|
)
|
106
358
|
public
|
107
359
|
view
|
108
360
|
returns (address instance)
|
109
361
|
{
|
362
|
+
IRegistry registry = getRegistry();
|
110
363
|
NftId productNftId = registry.getParentNftId(componentNftId);
|
111
364
|
NftId instanceNftId = registry.getParentNftId(productNftId);
|
112
365
|
return registry.getObjectInfo(instanceNftId).objectAddress;
|
113
366
|
}
|
114
367
|
|
368
|
+
// TODO check array of nfts and array of types
|
369
|
+
// need to call: checkNftType({nftId: {nftId1, nftId2, nftId3}, expectedObjectType: {.., .., ..}})
|
370
|
+
/*function checkNftType(NftId nftId, ObjectType expectedObjectType) external view {
|
371
|
+
VersionPart expectedRelease = getRelease();
|
372
|
+
if(expectedObjectType.eqz() || !_getRegistry().isObjectType(nftId, expectedObjectType, expectedRelease)) {
|
373
|
+
revert ErrorNftOwnableInvalidType(nftId, expectedObjectType, expectedRelease);
|
374
|
+
}
|
375
|
+
}*/
|
115
376
|
|
377
|
+
// TODO hardcoded token registry address?
|
116
378
|
function isActiveToken(
|
117
379
|
address tokenRegistryAddress,
|
118
380
|
ChainId chainId,
|
@@ -123,7 +385,7 @@ library ContractLib {
|
|
123
385
|
view
|
124
386
|
returns (bool)
|
125
387
|
{
|
126
|
-
return
|
388
|
+
return TokenRegistry(
|
127
389
|
tokenRegistryAddress).isActive(
|
128
390
|
chainId, token, release);
|
129
391
|
}
|
@@ -160,16 +422,6 @@ library ContractLib {
|
|
160
422
|
}
|
161
423
|
|
162
424
|
|
163
|
-
function isRegistered(address registry, address caller, ObjectType expectedType) public view returns (bool) {
|
164
|
-
NftId nftId = IRegistry(registry).getNftIdForAddress(caller);
|
165
|
-
if (nftId.eqz()) {
|
166
|
-
return false;
|
167
|
-
}
|
168
|
-
|
169
|
-
return IRegistry(registry).getObjectInfo(nftId).objectType == expectedType;
|
170
|
-
}
|
171
|
-
|
172
|
-
|
173
425
|
function isService(address service) public view returns (bool) {
|
174
426
|
if (!isContract(service)) {
|
175
427
|
return false;
|
@@ -179,12 +431,8 @@ library ContractLib {
|
|
179
431
|
}
|
180
432
|
|
181
433
|
|
182
|
-
function isRegistry(address registry) public
|
183
|
-
|
184
|
-
return false;
|
185
|
-
}
|
186
|
-
|
187
|
-
return supportsInterface(registry, type(IRegistry).interfaceId);
|
434
|
+
function isRegistry(address registry) public pure returns (bool) {
|
435
|
+
return registry == REGISTRY_ADDRESS;
|
188
436
|
}
|
189
437
|
|
190
438
|
|
@@ -206,39 +454,59 @@ library ContractLib {
|
|
206
454
|
|
207
455
|
|
208
456
|
function _getAndVerifyComponentAndInstance(
|
209
|
-
IRegistry registry,
|
210
457
|
IRegistry.ObjectInfo memory info,
|
211
458
|
ObjectType expectedType,
|
459
|
+
VersionPart expectedRelease,
|
212
460
|
bool onlyActive
|
213
461
|
)
|
214
462
|
internal
|
215
463
|
view
|
216
464
|
returns (
|
217
|
-
|
218
|
-
|
465
|
+
NftId componentNftId,
|
466
|
+
IInstance instance
|
219
467
|
)
|
220
468
|
{
|
221
|
-
if(
|
222
|
-
|
469
|
+
if(expectedType != COMPONENT()) {
|
470
|
+
if(info.objectType != expectedType) {
|
471
|
+
revert ErrorContractLibComponentTypeMismatch(
|
472
|
+
//info.objectAddress,
|
473
|
+
info.nftId,
|
474
|
+
expectedType,
|
475
|
+
info.objectType);
|
476
|
+
}
|
477
|
+
} else if(
|
478
|
+
!(
|
479
|
+
info.objectType == PRODUCT() ||
|
480
|
+
info.objectType == POOL() ||
|
481
|
+
info.objectType == DISTRIBUTION() ||
|
482
|
+
info.objectType == ORACLE()
|
483
|
+
)
|
484
|
+
) {
|
485
|
+
revert ErrorContractLibCallerNotComponent(
|
486
|
+
//info.objectAddress,
|
223
487
|
info.nftId,
|
224
|
-
expectedType,
|
225
488
|
info.objectType);
|
226
489
|
}
|
227
490
|
|
491
|
+
if(info.release != expectedRelease) {
|
492
|
+
revert ErrorContractLibComponentReleaseMismatch(
|
493
|
+
//info.objectAddress,
|
494
|
+
info.nftId,
|
495
|
+
expectedRelease,
|
496
|
+
info.release);
|
497
|
+
}
|
498
|
+
|
499
|
+
componentNftId = info.nftId;
|
500
|
+
|
228
501
|
// get instance and check component is active
|
229
|
-
instance = getAndVerifyInstance(
|
502
|
+
instance = getAndVerifyInstance(info);
|
230
503
|
_checkComponentActive(instance, info.objectAddress, info.nftId, onlyActive);
|
231
|
-
|
232
|
-
return (
|
233
|
-
info,
|
234
|
-
instance
|
235
|
-
);
|
236
504
|
}
|
237
505
|
|
238
506
|
|
239
507
|
function _checkComponentActive(
|
240
|
-
|
241
|
-
address
|
508
|
+
IInstance instance,
|
509
|
+
address component,
|
242
510
|
NftId componentNftId,
|
243
511
|
bool onlyActive
|
244
512
|
)
|
@@ -246,11 +514,8 @@ library ContractLib {
|
|
246
514
|
view
|
247
515
|
{
|
248
516
|
if (onlyActive) {
|
249
|
-
if (
|
250
|
-
|
251
|
-
target)
|
252
|
-
) {
|
253
|
-
revert ErrorContractLibComponentInactive(componentNftId);
|
517
|
+
if (instance.getInstanceAdmin().isTargetLocked(component)) {
|
518
|
+
revert ErrorContractLibComponentInactive(/*component, */componentNftId);
|
254
519
|
}
|
255
520
|
}
|
256
521
|
}
|
@@ -260,13 +525,14 @@ library ContractLib {
|
|
260
525
|
/// The info may represent a product or any other component.
|
261
526
|
/// If the parent of the provided info is not registered with the correct type, the function reverts.
|
262
527
|
function getAndVerifyInstance(
|
263
|
-
IRegistry registry,
|
264
528
|
IRegistry.ObjectInfo memory info
|
265
529
|
)
|
266
530
|
public
|
267
531
|
view
|
268
|
-
returns (
|
532
|
+
returns (IInstance instance)
|
269
533
|
{
|
534
|
+
IRegistry registry = getRegistry();
|
535
|
+
|
270
536
|
// get instance for product case
|
271
537
|
if (info.objectType == PRODUCT()) {
|
272
538
|
// verify that parent of product is registered instance
|
@@ -278,7 +544,7 @@ library ContractLib {
|
|
278
544
|
}
|
279
545
|
|
280
546
|
// we have verified that parent object is a registerd instance -> we return the instance address
|
281
|
-
return instanceInfo.objectAddress;
|
547
|
+
return IInstance(instanceInfo.objectAddress);
|
282
548
|
}
|
283
549
|
|
284
550
|
// not product: verify parent is registered product
|
@@ -290,23 +556,23 @@ library ContractLib {
|
|
290
556
|
}
|
291
557
|
|
292
558
|
// we have verified that parent is registerd product -> we can rely on registry that its parent is an instance
|
293
|
-
return registry.getObjectAddress(info.parentNftId);
|
559
|
+
return IInstance(registry.getObjectAddress(info.parentNftId));
|
294
560
|
}
|
295
561
|
|
296
|
-
|
562
|
+
// check registration and return info
|
297
563
|
function _getAndVerifyObjectInfo(
|
298
|
-
IRegistry registry,
|
299
564
|
address caller
|
300
565
|
)
|
301
566
|
internal
|
302
567
|
view
|
303
568
|
returns (IRegistry.ObjectInfo memory info)
|
304
569
|
{
|
305
|
-
|
306
|
-
|
570
|
+
IRegistry registry = getRegistry();
|
571
|
+
|
572
|
+
info = registry.getObjectInfo(caller);
|
573
|
+
|
574
|
+
if (info.nftId.eqz()) {
|
307
575
|
revert ErrorContractLibCallerNotRegistered(caller);
|
308
576
|
}
|
309
|
-
|
310
|
-
info = registry.getObjectInfo(componentNftId);
|
311
577
|
}
|
312
578
|
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IComponent} from "../shared/IComponent.sol";
|
5
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
6
|
+
|
7
|
+
/// @dev component base class
|
8
|
+
/// component examples are product, distribution, pool and oracle
|
9
|
+
interface IAuthorizedComponent is
|
10
|
+
IComponent
|
11
|
+
{
|
12
|
+
/// @dev returns the initial component authorization specification.
|
13
|
+
function getAuthorization() external view returns (IAuthorization authorization);
|
14
|
+
|
15
|
+
}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {
|
5
|
+
import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
|
6
6
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
7
7
|
import {IInstance} from "../instance/IInstance.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
@@ -12,7 +12,7 @@ import {VersionPart} from "../type/Version.sol";
|
|
12
12
|
/// @dev component base class
|
13
13
|
/// component examples are product, distribution, pool and oracle
|
14
14
|
interface IInstanceLinkedComponent is
|
15
|
-
|
15
|
+
IAuthorizedComponent
|
16
16
|
{
|
17
17
|
error ErrorInstanceLinkedComponentInstanceInvalid();
|
18
18
|
error ErrorInstanceLinkedComponentInstanceMismatch(VersionPart instanceRelease, VersionPart componentRelease);
|
@@ -20,8 +20,4 @@ interface IInstanceLinkedComponent is
|
|
20
20
|
/// @dev defines the instance to which this component is linked to
|
21
21
|
function getInstance() external view returns (IInstance instance);
|
22
22
|
|
23
|
-
// TODO consider moving to Registerable -> it works with authority
|
24
|
-
/// @dev returns the initial component authorization specification.
|
25
|
-
function getAuthorization() external view returns (IAuthorization authorization);
|
26
|
-
|
27
23
|
}
|
@@ -5,7 +5,6 @@ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
|
5
5
|
|
6
6
|
import {IRegistryLinked} from "./IRegistryLinked.sol";
|
7
7
|
import {NftId} from "../type/NftId.sol";
|
8
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
9
8
|
|
10
9
|
interface INftOwnable is
|
11
10
|
IERC165,
|
@@ -15,7 +14,6 @@ interface INftOwnable is
|
|
15
14
|
|
16
15
|
error ErrorNftOwnableInitialOwnerZero();
|
17
16
|
error ErrorNftOwnableNotOwner(address account);
|
18
|
-
error ErrorNftOwnableInvalidType(NftId nftId, ObjectType expectedObjectType);
|
19
17
|
|
20
18
|
error ErrorNftOwnableAlreadyLinked(NftId nftId);
|
21
19
|
error ErrorNftOwnableContractNotRegistered(address contractAddress);
|