@etherisc/gif-next 0.0.2-ffa91a6-022 → 3.0.0-06d5e8b-738
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 +124 -332
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +111 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +370 -141
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1582 -202
- 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 +266 -64
- 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 +263 -87
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +102 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -38
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +269 -69
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -12
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +376 -147
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +160 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -11
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +232 -19
- 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 +108 -79
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +268 -68
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +136 -95
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +268 -68
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +728 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1234 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2497 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +86 -45
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +268 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +35 -26
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -105
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +268 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -147
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +268 -68
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +374 -35
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +305 -5
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +425 -97
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +753 -401
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +236 -80
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +747 -553
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +331 -31
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1323 -2012
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
- 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 +25 -16
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +282 -65
- 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 +19 -10
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -10
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -58
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +268 -68
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -20
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -20
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +338 -79
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +216 -59
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -37
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +268 -68
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -70
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -31
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +138 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +93 -112
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +115 -65
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -31
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -43
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- 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 +71 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +539 -314
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +335 -76
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +96 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +551 -246
- 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 +169 -111
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -10
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +196 -201
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +130 -64
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
- 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/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/{ComponentVerifyingService.sol/ComponentVerifyingService.json → IAuthorizedComponent.sol/IAuthorizedComponent.json} +238 -90
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -10
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +111 -132
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -10
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- 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 +19 -10
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
- 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/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1390 -134
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +97 -117
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1479 -192
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +77 -76
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +139 -64
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +296 -152
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +131 -167
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1615 -815
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +153 -91
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
- 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 +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/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 +69 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- 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/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +15 -3
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +303 -326
- package/contracts/authorization/AccessAdminLib.sol +535 -23
- package/contracts/authorization/AccessManagerCloneable.sol +0 -18
- package/contracts/authorization/Authorization.sol +64 -239
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +25 -53
- package/contracts/authorization/IAuthorization.sol +3 -57
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +3 -4
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +9 -8
- package/contracts/distribution/DistributionService.sol +125 -62
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +20 -8
- package/contracts/examples/fire/FireProduct.sol +6 -6
- package/contracts/examples/flight/FlightLib.sol +300 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightOracle.sol +171 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +53 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +685 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +69 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +57 -6
- package/contracts/instance/IInstanceService.sol +42 -7
- package/contracts/instance/Instance.sol +111 -56
- package/contracts/instance/InstanceAdmin.sol +150 -294
- package/contracts/instance/InstanceAuthorizationV3.sol +106 -66
- package/contracts/instance/InstanceReader.sol +376 -392
- package/contracts/instance/InstanceService.sol +186 -134
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +15 -5
- package/contracts/instance/module/IDistribution.sol +17 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +2 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleService.sol +12 -12
- package/contracts/oracle/Oracle.sol +4 -6
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -16
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +7 -2
- package/contracts/pool/Pool.sol +6 -18
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +40 -181
- package/contracts/product/ApplicationService.sol +64 -11
- package/contracts/product/BasicProduct.sol +2 -3
- package/contracts/product/BasicProductAuthorization.sol +13 -5
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +21 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +40 -59
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +28 -31
- package/contracts/product/Product.sol +40 -16
- package/contracts/product/RiskService.sol +50 -15
- package/contracts/registry/IRegistry.sol +15 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +39 -118
- package/contracts/registry/RegistryAuthorization.sol +139 -69
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +59 -106
- package/contracts/registry/ReleaseRegistry.sol +20 -12
- package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +8 -8
- package/contracts/shared/ComponentService.sol +245 -262
- package/contracts/shared/ContractLib.sol +106 -75
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +1 -1
- package/contracts/shared/IComponentService.sol +14 -15
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InstanceLinkedComponent.sol +64 -26
- package/contracts/shared/NftOwnable.sol +3 -1
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Service.sol +6 -4
- package/contracts/staking/IStaking.sol +261 -70
- package/contracts/staking/IStakingService.sol +39 -84
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +468 -217
- package/contracts/staking/StakingLib.sol +38 -124
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +62 -71
- package/contracts/staking/StakingService.sol +42 -185
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -331
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +17 -33
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +23 -0
- package/contracts/type/String.sol +42 -0
- package/contracts/type/Timestamp.sol +14 -3
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -5,11 +5,13 @@ 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 {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
9
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
10
8
|
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
9
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
10
|
+
import {IService} from "../shared/IService.sol";
|
11
|
+
|
12
|
+
import {ChainId} from "../type/ChainId.sol";
|
11
13
|
import {NftId} from "../type/NftId.sol";
|
12
|
-
import {ObjectType, PRODUCT, DISTRIBUTION, ORACLE, POOL
|
14
|
+
import {ObjectType, INSTANCE, PRODUCT, DISTRIBUTION, ORACLE, POOL} from "../type/ObjectType.sol";
|
13
15
|
import {VersionPart} from "../type/Version.sol";
|
14
16
|
|
15
17
|
interface ITargetHelper {
|
@@ -21,44 +23,18 @@ interface IInstanceAdminHelper {
|
|
21
23
|
}
|
22
24
|
|
23
25
|
interface ITokenRegistryHelper {
|
24
|
-
function isActive(
|
26
|
+
function isActive(ChainId chainId, address token, VersionPart release) external view returns (bool);
|
25
27
|
}
|
26
28
|
|
27
29
|
library ContractLib {
|
28
30
|
|
29
|
-
error
|
30
|
-
error
|
31
|
-
error
|
31
|
+
error ErrorContractLibCallerNotRegistered(address target);
|
32
|
+
error ErrorContractLibCallerNotComponent(NftId componentNftId, ObjectType objectType);
|
33
|
+
error ErrorContractLibParentNotInstance(NftId componentNftId, NftId parentNftId);
|
34
|
+
error ErrorContractLibParentNotProduct(NftId componentNftId, NftId parentNftId);
|
32
35
|
error ErrorContractLibComponentTypeMismatch(NftId componentNftId, ObjectType expectedType, ObjectType actualType);
|
33
36
|
error ErrorContractLibComponentInactive(NftId componentNftId);
|
34
37
|
|
35
|
-
function getAndVerifyComponent(
|
36
|
-
IRegistry registry,
|
37
|
-
address target,
|
38
|
-
ObjectType expectedType,
|
39
|
-
bool onlyActive
|
40
|
-
)
|
41
|
-
external
|
42
|
-
view
|
43
|
-
returns (
|
44
|
-
IRegistry.ObjectInfo memory info,
|
45
|
-
address instance
|
46
|
-
)
|
47
|
-
{
|
48
|
-
// check target is component
|
49
|
-
info = _getObjectInfo(registry, target);
|
50
|
-
if(info.objectType != expectedType) {
|
51
|
-
revert ErrorContractLibComponentTypeMismatch(
|
52
|
-
info.nftId,
|
53
|
-
expectedType,
|
54
|
-
info.objectType);
|
55
|
-
}
|
56
|
-
|
57
|
-
// get instance and check component is active
|
58
|
-
instance = _getInstance(registry, info);
|
59
|
-
_checkComponentActive(instance, target, info.nftId, onlyActive);
|
60
|
-
}
|
61
|
-
|
62
38
|
|
63
39
|
function getInfoAndInstance(
|
64
40
|
IRegistry registry,
|
@@ -73,34 +49,42 @@ library ContractLib {
|
|
73
49
|
)
|
74
50
|
{
|
75
51
|
info = registry.getObjectInfo(componentNftId);
|
76
|
-
|
77
|
-
_checkComponentActive(instance, info.objectAddress, info.nftId, onlyActive);
|
52
|
+
return _getAndVerifyComponentAndInstance(registry, info, info.objectType, onlyActive);
|
78
53
|
}
|
79
54
|
|
80
55
|
|
81
|
-
function
|
56
|
+
function getAndVerifyAnyComponent(
|
82
57
|
IRegistry registry,
|
83
|
-
address
|
58
|
+
address caller,
|
59
|
+
bool onlyActive
|
84
60
|
)
|
85
61
|
external
|
86
62
|
view
|
87
63
|
returns (
|
88
|
-
IRegistry.ObjectInfo memory
|
64
|
+
IRegistry.ObjectInfo memory callerInfo,
|
65
|
+
address instance
|
89
66
|
)
|
90
67
|
{
|
91
|
-
// check
|
92
|
-
|
93
|
-
if(
|
94
|
-
|
95
|
-
|
96
|
-
|
68
|
+
// check caller is component
|
69
|
+
callerInfo = _getAndVerifyObjectInfo(registry, caller);
|
70
|
+
if(!(callerInfo.objectType == PRODUCT()
|
71
|
+
|| callerInfo.objectType == POOL()
|
72
|
+
|| callerInfo.objectType == DISTRIBUTION()
|
73
|
+
|| callerInfo.objectType == ORACLE())
|
74
|
+
) {
|
75
|
+
revert ErrorContractLibCallerNotComponent(
|
76
|
+
callerInfo.nftId,
|
77
|
+
callerInfo.objectType);
|
97
78
|
}
|
79
|
+
|
80
|
+
return _getAndVerifyComponentAndInstance(registry, callerInfo, callerInfo.objectType, onlyActive);
|
98
81
|
}
|
99
82
|
|
100
83
|
|
101
|
-
function
|
84
|
+
function getAndVerifyComponent(
|
102
85
|
IRegistry registry,
|
103
|
-
address
|
86
|
+
address caller,
|
87
|
+
ObjectType expectedType,
|
104
88
|
bool onlyActive
|
105
89
|
)
|
106
90
|
external
|
@@ -110,21 +94,8 @@ library ContractLib {
|
|
110
94
|
address instance
|
111
95
|
)
|
112
96
|
{
|
113
|
-
|
114
|
-
|
115
|
-
if(!(info.objectType == PRODUCT()
|
116
|
-
|| info.objectType == POOL()
|
117
|
-
|| info.objectType == DISTRIBUTION()
|
118
|
-
|| info.objectType == ORACLE())
|
119
|
-
) {
|
120
|
-
revert ErrorContractLibNotComponent(
|
121
|
-
info.nftId,
|
122
|
-
info.objectType);
|
123
|
-
}
|
124
|
-
|
125
|
-
// get instance and check component is active
|
126
|
-
instance = _getInstance(registry, info);
|
127
|
-
_checkComponentActive(instance, target, info.nftId, onlyActive);
|
97
|
+
info = _getAndVerifyObjectInfo(registry, caller);
|
98
|
+
return _getAndVerifyComponentAndInstance(registry, info, expectedType, onlyActive);
|
128
99
|
}
|
129
100
|
|
130
101
|
|
@@ -144,8 +115,8 @@ library ContractLib {
|
|
144
115
|
|
145
116
|
function isActiveToken(
|
146
117
|
address tokenRegistryAddress,
|
118
|
+
ChainId chainId,
|
147
119
|
address token,
|
148
|
-
uint256 chainId,
|
149
120
|
VersionPart release
|
150
121
|
)
|
151
122
|
external
|
@@ -157,6 +128,7 @@ library ContractLib {
|
|
157
128
|
chainId, token, release);
|
158
129
|
}
|
159
130
|
|
131
|
+
|
160
132
|
function isPolicyHolder(address target) external view returns (bool) {
|
161
133
|
return ERC165Checker.supportsInterface(target, type(IPolicyHolder).interfaceId);
|
162
134
|
}
|
@@ -198,6 +170,15 @@ library ContractLib {
|
|
198
170
|
}
|
199
171
|
|
200
172
|
|
173
|
+
function isService(address service) public view returns (bool) {
|
174
|
+
if (!isContract(service)) {
|
175
|
+
return false;
|
176
|
+
}
|
177
|
+
|
178
|
+
return supportsInterface(service, type(IService).interfaceId);
|
179
|
+
}
|
180
|
+
|
181
|
+
|
201
182
|
function isRegistry(address registry) public view returns (bool) {
|
202
183
|
if (!isContract(registry)) {
|
203
184
|
return false;
|
@@ -224,6 +205,37 @@ library ContractLib {
|
|
224
205
|
}
|
225
206
|
|
226
207
|
|
208
|
+
function _getAndVerifyComponentAndInstance(
|
209
|
+
IRegistry registry,
|
210
|
+
IRegistry.ObjectInfo memory info,
|
211
|
+
ObjectType expectedType,
|
212
|
+
bool onlyActive
|
213
|
+
)
|
214
|
+
internal
|
215
|
+
view
|
216
|
+
returns (
|
217
|
+
IRegistry.ObjectInfo memory,
|
218
|
+
address instance
|
219
|
+
)
|
220
|
+
{
|
221
|
+
if(info.objectType != expectedType) {
|
222
|
+
revert ErrorContractLibComponentTypeMismatch(
|
223
|
+
info.nftId,
|
224
|
+
expectedType,
|
225
|
+
info.objectType);
|
226
|
+
}
|
227
|
+
|
228
|
+
// get instance and check component is active
|
229
|
+
instance = getAndVerifyInstance(registry, info);
|
230
|
+
_checkComponentActive(instance, info.objectAddress, info.nftId, onlyActive);
|
231
|
+
|
232
|
+
return (
|
233
|
+
info,
|
234
|
+
instance
|
235
|
+
);
|
236
|
+
}
|
237
|
+
|
238
|
+
|
227
239
|
function _checkComponentActive(
|
228
240
|
address instance,
|
229
241
|
address target,
|
@@ -244,36 +256,55 @@ library ContractLib {
|
|
244
256
|
}
|
245
257
|
|
246
258
|
|
247
|
-
function
|
259
|
+
/// @dev Given an object info the function returns the instance address.
|
260
|
+
/// The info may represent a product or any other component.
|
261
|
+
/// If the parent of the provided info is not registered with the correct type, the function reverts.
|
262
|
+
function getAndVerifyInstance(
|
248
263
|
IRegistry registry,
|
249
264
|
IRegistry.ObjectInfo memory info
|
250
265
|
)
|
251
|
-
|
266
|
+
public
|
252
267
|
view
|
253
268
|
returns (address instance)
|
254
269
|
{
|
270
|
+
// get instance for product case
|
255
271
|
if (info.objectType == PRODUCT()) {
|
256
|
-
|
272
|
+
// verify that parent of product is registered instance
|
273
|
+
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(info.parentNftId);
|
274
|
+
if (instanceInfo.objectType != INSTANCE()) {
|
275
|
+
revert ErrorContractLibParentNotInstance(
|
276
|
+
info.nftId,
|
277
|
+
info.parentNftId);
|
278
|
+
}
|
279
|
+
|
280
|
+
// we have verified that parent object is a registerd instance -> we return the instance address
|
281
|
+
return instanceInfo.objectAddress;
|
282
|
+
}
|
283
|
+
|
284
|
+
// not product: verify parent is registered product
|
285
|
+
info = registry.getObjectInfo(info.parentNftId);
|
286
|
+
if (info.objectType != PRODUCT()) {
|
287
|
+
revert ErrorContractLibParentNotProduct(
|
288
|
+
info.nftId,
|
257
289
|
info.parentNftId);
|
258
|
-
}
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
info.parentNftId).parentNftId);
|
290
|
+
}
|
291
|
+
|
292
|
+
// 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);
|
263
294
|
}
|
264
295
|
|
265
296
|
|
266
|
-
function
|
297
|
+
function _getAndVerifyObjectInfo(
|
267
298
|
IRegistry registry,
|
268
|
-
address
|
299
|
+
address caller
|
269
300
|
)
|
270
301
|
internal
|
271
302
|
view
|
272
303
|
returns (IRegistry.ObjectInfo memory info)
|
273
304
|
{
|
274
|
-
NftId componentNftId = registry.getNftIdForAddress(
|
305
|
+
NftId componentNftId = registry.getNftIdForAddress(caller);
|
275
306
|
if (componentNftId.eqz()) {
|
276
|
-
revert
|
307
|
+
revert ErrorContractLibCallerNotRegistered(caller);
|
277
308
|
}
|
278
309
|
|
279
310
|
info = registry.getObjectInfo(componentNftId);
|
@@ -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
|
+
}
|
@@ -40,7 +40,7 @@ interface IComponent is
|
|
40
40
|
function getTokenHandler() external view returns (TokenHandler tokenHandler);
|
41
41
|
|
42
42
|
/// @dev defines the wallet address used to hold the ERC20 tokens related to this component
|
43
|
-
/// the default address is the
|
43
|
+
/// the default address is the token handler address
|
44
44
|
function getWallet() external view returns (address walletAddress);
|
45
45
|
|
46
46
|
/// @dev returns true iff this compoent intercepts nft minting and transfers for objects registered by this component
|
@@ -16,22 +16,20 @@ import {VersionPart} from "../type/Version.sol";
|
|
16
16
|
interface IComponentService is
|
17
17
|
IService
|
18
18
|
{
|
19
|
+
// registerProduct
|
20
|
+
error ErrorComponentServiceCallerNotInstance(address caller);
|
21
|
+
error ErrorComponentServiceNotProduct(address product);
|
19
22
|
error ErrorComponentServiceTokenInvalid(address token);
|
20
23
|
|
21
|
-
|
22
|
-
error
|
24
|
+
// registerComponent
|
25
|
+
error ErrorComponentServiceCallerNotProduct(address caller);
|
23
26
|
error ErrorComponentServiceNotComponent(address component);
|
24
|
-
|
25
|
-
error
|
26
|
-
error
|
27
|
-
error
|
28
|
-
error
|
29
|
-
error
|
30
|
-
error ErrorComponentServiceParentNotProduct(NftId nftId, ObjectType objectType);
|
31
|
-
|
32
|
-
error ErrorComponentServiceNotRegistered(address instanceAddress);
|
33
|
-
error ErrorComponentServiceNotInstance(address instanceAddress, ObjectType objectType);
|
34
|
-
error ErrorComponentServiceInstanceVersionMismatch(address instanceAddress, VersionPart instanceVersion);
|
27
|
+
|
28
|
+
error ErrorComponentServiceNotInstanceLinkedComponent(address component);
|
29
|
+
error ErrorComponentServiceComponentTypeNotSupported(address component, ObjectType invalid);
|
30
|
+
error ErrorComponentServiceComponentParentInvalid(address component, NftId required, NftId actual);
|
31
|
+
error ErrorComponentServiceComponentReleaseMismatch(address component, VersionPart serviceRelease, VersionPart componentRelease);
|
32
|
+
error ErrorComponentServiceComponentAlreadyRegistered(address component);
|
35
33
|
|
36
34
|
error ErrorProductServiceNoDistributionExpected(NftId productNftId);
|
37
35
|
error ErrorProductServiceDistributionAlreadyRegistered(NftId productNftId, NftId distributionNftId);
|
@@ -47,6 +45,7 @@ interface IComponentService is
|
|
47
45
|
error ErrorComponentServiceWithdrawAmountExceedsLimit(Amount withdrawnAmount, Amount withdrawLimit);
|
48
46
|
error ErrorComponentServiceWalletAllowanceTooSmall(address wallet, address spender, uint256 allowance, uint256 amount);
|
49
47
|
|
48
|
+
event LogComponentServiceComponentLocked(address component, bool locked);
|
50
49
|
event LogComponentServiceRegistered(NftId instanceNftId, NftId componentNftId, ObjectType componentType, address component, address token, address initialOwner);
|
51
50
|
event LogComponentServiceWalletAddressChanged(NftId componentNftId, address currentWallet, address newWallet);
|
52
51
|
event LogComponentServiceWalletTokensTransferred(NftId componentNftId, address currentWallet, address newWallet, uint256 currentBalance);
|
@@ -58,9 +57,9 @@ interface IComponentService is
|
|
58
57
|
NftId nftId,
|
59
58
|
string feeName,
|
60
59
|
UFixed previousFractionalFee,
|
61
|
-
|
60
|
+
Amount previousFixedFee,
|
62
61
|
UFixed newFractionalFee,
|
63
|
-
|
62
|
+
Amount newFixedFee
|
64
63
|
);
|
65
64
|
|
66
65
|
//-------- component ----------------------------------------------------//
|
@@ -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";
|
@@ -11,7 +11,7 @@ import {ObjectType} from "../type/ObjectType.sol";
|
|
11
11
|
/// @dev component base class
|
12
12
|
/// component examples are product, distribution, pool and oracle
|
13
13
|
interface IInstanceLinkedComponent is
|
14
|
-
|
14
|
+
IAuthorizedComponent
|
15
15
|
{
|
16
16
|
error ErrorInstanceLinkedComponentTypeMismatch(ObjectType requiredType, ObjectType objectType);
|
17
17
|
error ErrorInstanceLinkedComponentNotProduct(NftId nftId, ObjectType objectType);
|
@@ -24,7 +24,4 @@ interface IInstanceLinkedComponent is
|
|
24
24
|
/// @dev defines the instance to which this component is linked to
|
25
25
|
function getInstance() external view returns (IInstance instance);
|
26
26
|
|
27
|
-
/// @dev returns the initial component authorization specification.
|
28
|
-
function getAuthorization() external view returns (IAuthorization authorization);
|
29
|
-
|
30
27
|
}
|
@@ -11,6 +11,8 @@ interface INftOwnable is
|
|
11
11
|
IERC165,
|
12
12
|
IRegistryLinked
|
13
13
|
{
|
14
|
+
event LogNftOwnableNftLinkedToAddress(NftId nftId, address owner);
|
15
|
+
|
14
16
|
error ErrorNftOwnableInitialOwnerZero();
|
15
17
|
error ErrorNftOwnableNotOwner(address account);
|
16
18
|
error ErrorNftOwnableInvalidType(NftId nftId, ObjectType expectedObjectType);
|
@@ -6,7 +6,6 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
6
6
|
import {INftOwnable} from "./INftOwnable.sol";
|
7
7
|
import {IRelease} from "../registry/IRelease.sol";
|
8
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
9
|
-
import {VersionPart} from "../type/Version.sol";
|
10
9
|
|
11
10
|
/// @title IRegisterable
|
12
11
|
/// @dev Marks contracts that are intended to be registered in the registry.
|
@@ -1,27 +1,25 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
-
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
7
|
-
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
8
|
-
|
9
|
-
import {Amount} from "../type/Amount.sol";
|
10
|
-
import {Component} from "./Component.sol";
|
11
|
-
import {IComponentService} from "./IComponentService.sol";
|
12
|
-
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
13
4
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
5
|
+
import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
|
14
6
|
import {IComponents} from "../instance/module/IComponents.sol";
|
15
|
-
import {
|
7
|
+
import {IComponentService} from "./IComponentService.sol";
|
16
8
|
import {IInstance} from "../instance/IInstance.sol";
|
9
|
+
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
10
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
11
|
+
import {IOracleService} from "../oracle/IOracleService.sol";
|
12
|
+
|
13
|
+
import {Amount} from "../type/Amount.sol";
|
14
|
+
import {Component} from "./Component.sol";
|
17
15
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
18
16
|
import {IRegistry} from "../registry/IRegistry.sol";
|
19
17
|
import {NftId} from "../type/NftId.sol";
|
20
|
-
import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
|
21
|
-
import {
|
18
|
+
import {ObjectType, COMPONENT, INSTANCE, ORACLE, PRODUCT} from "../type/ObjectType.sol";
|
19
|
+
import {RequestId} from "../type/RequestId.sol";
|
22
20
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
23
|
-
import {IAccess} from "../authorization/IAccess.sol";
|
24
21
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
22
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
25
23
|
import {VersionPart} from "../type/Version.sol";
|
26
24
|
|
27
25
|
// then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
|
@@ -38,8 +36,23 @@ abstract contract InstanceLinkedComponent is
|
|
38
36
|
InstanceReader _instanceReader; // instance reader for this component
|
39
37
|
IAuthorization _initialAuthorization;
|
40
38
|
IComponentService _componentService;
|
39
|
+
IOracleService _oracleService;
|
40
|
+
}
|
41
|
+
|
42
|
+
//--- view functions ----------------------------------------------------//
|
43
|
+
|
44
|
+
/// @inheritdoc IInstanceLinkedComponent
|
45
|
+
function getInstance() public view virtual override returns (IInstance instance) {
|
46
|
+
return _getInstanceLinkedComponentStorage()._instance;
|
47
|
+
}
|
48
|
+
|
49
|
+
|
50
|
+
/// @inheritdoc IAuthorizedComponent
|
51
|
+
function getAuthorization() external view virtual returns (IAuthorization authorization) {
|
52
|
+
return _getInstanceLinkedComponentStorage()._initialAuthorization;
|
41
53
|
}
|
42
54
|
|
55
|
+
|
43
56
|
/// @inheritdoc IInstanceLinkedComponent
|
44
57
|
function withdrawFees(Amount amount)
|
45
58
|
external
|
@@ -51,31 +64,57 @@ abstract contract InstanceLinkedComponent is
|
|
51
64
|
return _withdrawFees(amount);
|
52
65
|
}
|
53
66
|
|
54
|
-
|
55
|
-
|
56
|
-
|
67
|
+
//--- internal functions ------------------------------------------------//
|
68
|
+
|
69
|
+
function _sendRequest(
|
70
|
+
NftId oracleNftId,
|
71
|
+
bytes memory requestData,
|
72
|
+
Timestamp expiryAt,
|
73
|
+
string memory callbackMethod
|
74
|
+
)
|
75
|
+
internal
|
76
|
+
virtual
|
77
|
+
returns (RequestId requestId)
|
78
|
+
{
|
79
|
+
return _getInstanceLinkedComponentStorage()._oracleService.request(
|
80
|
+
oracleNftId,
|
81
|
+
requestData,
|
82
|
+
expiryAt,
|
83
|
+
callbackMethod);
|
57
84
|
}
|
58
85
|
|
59
|
-
|
60
|
-
function
|
61
|
-
|
86
|
+
|
87
|
+
function _cancelRequest(RequestId requestId)
|
88
|
+
internal
|
89
|
+
virtual
|
90
|
+
{
|
91
|
+
_getInstanceLinkedComponentStorage()._oracleService.cancel(requestId);
|
62
92
|
}
|
63
93
|
|
94
|
+
|
95
|
+
function _resendRequest(RequestId requestId)
|
96
|
+
internal
|
97
|
+
virtual
|
98
|
+
{
|
99
|
+
_getInstanceLinkedComponentStorage()._oracleService.resend(requestId);
|
100
|
+
}
|
101
|
+
|
102
|
+
|
64
103
|
function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
|
65
104
|
assembly {
|
66
105
|
$.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
|
67
106
|
}
|
68
107
|
}
|
69
108
|
|
70
|
-
|
109
|
+
|
110
|
+
function __InstanceLinkedComponent_init(
|
71
111
|
address registry,
|
72
112
|
NftId parentNftId,
|
73
113
|
string memory name,
|
74
114
|
ObjectType componentType,
|
75
115
|
IAuthorization authorization,
|
76
116
|
bool isInterceptor,
|
77
|
-
address initialOwner
|
78
|
-
bytes memory componentData // data that will saved with the component info in the instance store
|
117
|
+
address initialOwner
|
79
118
|
)
|
80
119
|
internal
|
81
120
|
virtual
|
@@ -93,7 +132,7 @@ abstract contract InstanceLinkedComponent is
|
|
93
132
|
IRegistry(registry).getObjectAddress(instanceNftId));
|
94
133
|
|
95
134
|
// set component specific parameters
|
96
|
-
|
135
|
+
__Component_init(
|
97
136
|
$._instance.authority(), // instance linked components need to point to instance admin
|
98
137
|
registry,
|
99
138
|
parentNftId,
|
@@ -101,16 +140,15 @@ abstract contract InstanceLinkedComponent is
|
|
101
140
|
componentType,
|
102
141
|
isInterceptor,
|
103
142
|
initialOwner,
|
104
|
-
""
|
105
|
-
componentData);
|
143
|
+
""); // registry data
|
106
144
|
|
107
145
|
// set instance linked specific parameters
|
108
146
|
$._instanceReader = $._instance.getInstanceReader();
|
109
147
|
$._initialAuthorization = authorization;
|
110
148
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
149
|
+
$._oracleService = IOracleService(_getServiceAddress(ORACLE()));
|
111
150
|
|
112
151
|
// register interfaces
|
113
|
-
_registerInterface(type(IAccessManaged).interfaceId);
|
114
152
|
_registerInterface(type(IInstanceLinkedComponent).interfaceId);
|
115
153
|
}
|
116
154
|
|
@@ -41,7 +41,7 @@ contract NftOwnable is
|
|
41
41
|
}
|
42
42
|
|
43
43
|
function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
|
44
|
-
if(!getRegistry().isObjectType(nftId, expectedObjectType)) {
|
44
|
+
if(expectedObjectType.eqz() || !getRegistry().isObjectType(nftId, expectedObjectType)) {
|
45
45
|
revert ErrorNftOwnableInvalidType(nftId, expectedObjectType);
|
46
46
|
}
|
47
47
|
}
|
@@ -114,6 +114,8 @@ contract NftOwnable is
|
|
114
114
|
|
115
115
|
$._nftId = getRegistry().getNftIdForAddress(nftOwnableAddress);
|
116
116
|
|
117
|
+
emit LogNftOwnableNftLinkedToAddress($._nftId, getOwner());
|
118
|
+
|
117
119
|
return $._nftId;
|
118
120
|
}
|
119
121
|
|
@@ -3,12 +3,13 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
|
5
5
|
|
6
|
+
import {IPolicyHolder} from "./IPolicyHolder.sol";
|
7
|
+
|
6
8
|
import {Amount} from "../type/Amount.sol";
|
7
9
|
import {ClaimId} from "../type/ClaimId.sol";
|
8
10
|
import {InitializableERC165} from "./InitializableERC165.sol";
|
9
|
-
import {IPolicyHolder} from "./IPolicyHolder.sol";
|
10
11
|
import {NftId} from "../type/NftId.sol";
|
11
|
-
import {PayoutId
|
12
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
12
13
|
import {RegistryLinked} from "./RegistryLinked.sol";
|
13
14
|
import {Timestamp} from "../type/Timestamp.sol";
|
14
15
|
|
@@ -1,16 +1,15 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
4
|
import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
|
6
5
|
|
7
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
8
7
|
import {IService} from "./IService.sol";
|
9
8
|
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
10
|
-
import {ObjectType,
|
9
|
+
import {ObjectType, SERVICE} from "../type/ObjectType.sol";
|
11
10
|
import {Registerable} from "./Registerable.sol";
|
12
11
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
13
|
-
import {Version, VersionLib
|
12
|
+
import {Version, VersionLib} from "../type/Version.sol";
|
14
13
|
import {Versionable} from "../upgradeability/Versionable.sol";
|
15
14
|
|
16
15
|
|
@@ -53,12 +52,15 @@ abstract contract Service is
|
|
53
52
|
return VersionLib.toVersion(3, 0, 0);
|
54
53
|
}
|
55
54
|
|
55
|
+
|
56
56
|
function getRoleId() external virtual view returns(RoleId serviceRoleId) {
|
57
|
-
return RoleIdLib.
|
57
|
+
return RoleIdLib.toServiceRoleId(_getDomain(), getRelease());
|
58
58
|
}
|
59
59
|
|
60
|
+
//--- internal functions --------------------------------------------------------//
|
60
61
|
function _getDomain() internal virtual pure returns (ObjectType);
|
61
62
|
|
63
|
+
|
62
64
|
function _getServiceAddress(ObjectType domain) internal view returns (address) {
|
63
65
|
return getRegistry().getServiceAddress(domain, getRelease());
|
64
66
|
}
|