@etherisc/gif-next 0.0.2-95b223b-528 → 0.0.2-95f0eec-843
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 +57 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +134 -59
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +93 -49
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +85 -9
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
- 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 +525 -213
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +105 -153
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +58 -95
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +533 -218
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +149 -81
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +45 -82
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +379 -79
- 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 +145 -114
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +183 -144
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +163 -169
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +380 -45
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +94 -68
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +175 -141
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +259 -146
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +380 -45
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +474 -48
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +377 -10
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +485 -83
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +999 -334
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +380 -52
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +724 -412
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +381 -77
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +82 -56
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +434 -358
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +77 -49
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
- 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 +49 -21
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +61 -33
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +120 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +98 -54
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -82
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +355 -52
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +304 -226
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +119 -75
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +200 -89
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +59 -31
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +333 -169
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +72 -44
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +574 -360
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +145 -73
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +292 -62
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +105 -45
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +87 -59
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +171 -174
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +120 -84
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +234 -3
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +63 -17
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +160 -68
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +70 -42
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +150 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +278 -187
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -84
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +135 -126
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +102 -74
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +81 -53
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +218 -76
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +102 -46
- 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 +51 -16
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/{authorization/AccessAdmin.sol/IAccessManagedChecker.json → registry/IRelease.sol/IRelease.json} +6 -6
- 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 +89 -54
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +728 -480
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +75 -39
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +78 -42
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +385 -63
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +60 -32
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +211 -250
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +104 -68
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +178 -34
- 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 +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +49 -21
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +131 -153
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +49 -21
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +56 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +60 -32
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +268 -39
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +163 -10
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +341 -103
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +112 -50
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +90 -61
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +218 -58
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +95 -47
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +162 -148
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +60 -50
- 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/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 +33 -31
- 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 +2 -2
- 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/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +30 -6
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- 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/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +64 -26
- 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 +18 -7
- package/contracts/accounting/AccountingServiceManager.sol +1 -1
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +419 -254
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +142 -262
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +87 -80
- package/contracts/authorization/IAuthorization.sol +9 -42
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +247 -33
- package/contracts/distribution/BasicDistribution.sol +13 -11
- package/contracts/distribution/BasicDistributionAuthorization.sol +29 -9
- package/contracts/distribution/Distribution.sol +18 -58
- package/contracts/distribution/DistributionService.sol +168 -77
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +34 -19
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
- package/contracts/examples/fire/FireProduct.sol +2 -7
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -5
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleProduct.sol +26 -11
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IInstance.sol +91 -17
- package/contracts/instance/IInstanceService.sol +50 -4
- package/contracts/instance/Instance.sol +159 -52
- package/contracts/instance/InstanceAdmin.sol +265 -170
- package/contracts/instance/InstanceAuthorizationV3.sol +75 -34
- package/contracts/instance/InstanceReader.sol +415 -379
- package/contracts/instance/InstanceService.sol +251 -144
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/BalanceStore.sol +3 -5
- package/contracts/instance/base/ObjectLifecycle.sol +0 -3
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +16 -5
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +4 -0
- package/contracts/oracle/BasicOracle.sol +1 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +1 -3
- package/contracts/oracle/OracleService.sol +20 -19
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +2 -15
- package/contracts/pool/BasicPoolAuthorization.sol +29 -16
- package/contracts/pool/BundleService.sol +55 -94
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +27 -32
- package/contracts/pool/IPoolService.sol +57 -40
- package/contracts/pool/Pool.sol +11 -23
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +192 -193
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +85 -17
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +0 -2
- package/contracts/product/BasicProductAuthorization.sol +31 -9
- package/contracts/product/ClaimService.sol +127 -169
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +23 -1
- package/contracts/product/IClaimService.sol +2 -3
- package/contracts/product/IPolicyService.sol +20 -8
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IRiskService.sol +11 -7
- package/contracts/product/PolicyService.sol +104 -195
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +38 -35
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +30 -21
- package/contracts/product/RiskService.sol +85 -29
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/IRegistry.sol +21 -19
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +19 -8
- package/contracts/registry/RegistryAdmin.sol +100 -369
- package/contracts/registry/RegistryAuthorization.sol +284 -0
- package/contracts/registry/RegistryService.sol +4 -4
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +150 -116
- package/contracts/registry/ServiceAuthorizationV3.sol +159 -22
- package/contracts/registry/TokenRegistry.sol +12 -13
- package/contracts/shared/Component.sol +17 -26
- package/contracts/shared/ComponentService.sol +263 -283
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +163 -76
- package/contracts/shared/IComponent.sol +1 -5
- package/contracts/shared/IComponentService.sol +21 -26
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +4 -7
- package/contracts/shared/NftOwnable.sol +8 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +42 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +45 -92
- package/contracts/staking/IStaking.sol +41 -19
- package/contracts/staking/IStakingService.sol +21 -8
- package/contracts/staking/Staking.sol +159 -69
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +28 -19
- package/contracts/staking/StakingService.sol +74 -46
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +3 -2
- package/contracts/staking/TargetManagerLib.sol +1 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/ObjectType.sol +69 -52
- package/contracts/type/RiskId.sol +9 -3
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +27 -10
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
@@ -17,7 +17,7 @@ contract ComponentServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
ComponentService svc = new ComponentService();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|
@@ -2,12 +2,16 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
|
5
|
+
import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
|
6
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
7
|
|
6
|
-
// import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
7
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
8
8
|
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
9
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
10
|
+
import {IService} from "../shared/IService.sol";
|
11
|
+
|
9
12
|
import {NftId} from "../type/NftId.sol";
|
10
|
-
import {ObjectType, PRODUCT, DISTRIBUTION, ORACLE, POOL
|
13
|
+
import {ObjectType, INSTANCE, PRODUCT, DISTRIBUTION, ORACLE, POOL} from "../type/ObjectType.sol";
|
14
|
+
import {VersionPart} from "../type/Version.sol";
|
11
15
|
|
12
16
|
interface ITargetHelper {
|
13
17
|
function isTargetLocked(address target) external view returns (bool);
|
@@ -17,43 +21,20 @@ interface IInstanceAdminHelper {
|
|
17
21
|
function getInstanceAdmin() external view returns (ITargetHelper);
|
18
22
|
}
|
19
23
|
|
24
|
+
interface ITokenRegistryHelper {
|
25
|
+
function isActive(uint256 chainId, address token, VersionPart release) external view returns (bool);
|
26
|
+
}
|
27
|
+
|
20
28
|
library ContractLib {
|
21
29
|
|
22
|
-
error
|
23
|
-
error
|
24
|
-
error
|
30
|
+
error ErrorContractLibCallerNotRegistered(address target);
|
31
|
+
error ErrorContractLibCallerNotComponent(NftId componentNftId, ObjectType objectType);
|
32
|
+
error ErrorContractLibParentNotInstance(NftId componentNftId, NftId parentNftId);
|
33
|
+
error ErrorContractLibParentNotProduct(NftId componentNftId, NftId parentNftId);
|
25
34
|
error ErrorContractLibComponentTypeMismatch(NftId componentNftId, ObjectType expectedType, ObjectType actualType);
|
26
35
|
error ErrorContractLibComponentInactive(NftId componentNftId);
|
27
36
|
|
28
37
|
|
29
|
-
function getAndVerifyComponent(
|
30
|
-
IRegistry registry,
|
31
|
-
address target,
|
32
|
-
ObjectType expectedType,
|
33
|
-
bool onlyActive
|
34
|
-
)
|
35
|
-
external
|
36
|
-
view
|
37
|
-
returns (
|
38
|
-
IRegistry.ObjectInfo memory info,
|
39
|
-
address instance
|
40
|
-
)
|
41
|
-
{
|
42
|
-
// check target is component
|
43
|
-
info = _getObjectInfo(registry, target);
|
44
|
-
if(info.objectType != expectedType) {
|
45
|
-
revert ErrorContractLibComponentTypeMismatch(
|
46
|
-
info.nftId,
|
47
|
-
expectedType,
|
48
|
-
info.objectType);
|
49
|
-
}
|
50
|
-
|
51
|
-
// get instance and check component is active
|
52
|
-
instance = _getInstance(registry, info);
|
53
|
-
_checkComponentActive(instance, target, info.nftId, onlyActive);
|
54
|
-
}
|
55
|
-
|
56
|
-
|
57
38
|
function getInfoAndInstance(
|
58
39
|
IRegistry registry,
|
59
40
|
NftId componentNftId,
|
@@ -67,34 +48,42 @@ library ContractLib {
|
|
67
48
|
)
|
68
49
|
{
|
69
50
|
info = registry.getObjectInfo(componentNftId);
|
70
|
-
|
71
|
-
_checkComponentActive(instance, info.objectAddress, info.nftId, onlyActive);
|
51
|
+
return _getAndVerifyComponentAndInstance(registry, info, info.objectType, onlyActive);
|
72
52
|
}
|
73
53
|
|
74
54
|
|
75
|
-
function
|
55
|
+
function getAndVerifyAnyComponent(
|
76
56
|
IRegistry registry,
|
77
|
-
address
|
57
|
+
address caller,
|
58
|
+
bool onlyActive
|
78
59
|
)
|
79
60
|
external
|
80
61
|
view
|
81
62
|
returns (
|
82
|
-
IRegistry.ObjectInfo memory
|
63
|
+
IRegistry.ObjectInfo memory callerInfo,
|
64
|
+
address instance
|
83
65
|
)
|
84
66
|
{
|
85
|
-
// check
|
86
|
-
|
87
|
-
if(
|
88
|
-
|
89
|
-
|
90
|
-
|
67
|
+
// check caller is component
|
68
|
+
callerInfo = _getAndVerifyObjectInfo(registry, caller);
|
69
|
+
if(!(callerInfo.objectType == PRODUCT()
|
70
|
+
|| callerInfo.objectType == POOL()
|
71
|
+
|| callerInfo.objectType == DISTRIBUTION()
|
72
|
+
|| callerInfo.objectType == ORACLE())
|
73
|
+
) {
|
74
|
+
revert ErrorContractLibCallerNotComponent(
|
75
|
+
callerInfo.nftId,
|
76
|
+
callerInfo.objectType);
|
91
77
|
}
|
78
|
+
|
79
|
+
return _getAndVerifyComponentAndInstance(registry, callerInfo, callerInfo.objectType, onlyActive);
|
92
80
|
}
|
93
81
|
|
94
82
|
|
95
|
-
function
|
83
|
+
function getAndVerifyComponent(
|
96
84
|
IRegistry registry,
|
97
|
-
address
|
85
|
+
address caller,
|
86
|
+
ObjectType expectedType,
|
98
87
|
bool onlyActive
|
99
88
|
)
|
100
89
|
external
|
@@ -104,21 +93,8 @@ library ContractLib {
|
|
104
93
|
address instance
|
105
94
|
)
|
106
95
|
{
|
107
|
-
|
108
|
-
|
109
|
-
if(!(info.objectType == PRODUCT()
|
110
|
-
|| info.objectType == POOL()
|
111
|
-
|| info.objectType == DISTRIBUTION()
|
112
|
-
|| info.objectType == ORACLE())
|
113
|
-
) {
|
114
|
-
revert ErrorContractLibNotComponent(
|
115
|
-
info.nftId,
|
116
|
-
info.objectType);
|
117
|
-
}
|
118
|
-
|
119
|
-
// get instance and check component is active
|
120
|
-
instance = _getInstance(registry, info);
|
121
|
-
_checkComponentActive(instance, target, info.nftId, onlyActive);
|
96
|
+
info = _getAndVerifyObjectInfo(registry, caller);
|
97
|
+
return _getAndVerifyComponentAndInstance(registry, info, expectedType, onlyActive);
|
122
98
|
}
|
123
99
|
|
124
100
|
|
@@ -130,17 +106,78 @@ library ContractLib {
|
|
130
106
|
view
|
131
107
|
returns (address instance)
|
132
108
|
{
|
133
|
-
NftId productNftId = registry.
|
134
|
-
NftId instanceNftId = registry.
|
109
|
+
NftId productNftId = registry.getParentNftId(componentNftId);
|
110
|
+
NftId instanceNftId = registry.getParentNftId(productNftId);
|
135
111
|
return registry.getObjectInfo(instanceNftId).objectAddress;
|
136
112
|
}
|
137
113
|
|
138
114
|
|
115
|
+
function isActiveToken(
|
116
|
+
address tokenRegistryAddress,
|
117
|
+
address token,
|
118
|
+
uint256 chainId,
|
119
|
+
VersionPart release
|
120
|
+
)
|
121
|
+
external
|
122
|
+
view
|
123
|
+
returns (bool)
|
124
|
+
{
|
125
|
+
return ITokenRegistryHelper(
|
126
|
+
tokenRegistryAddress).isActive(
|
127
|
+
chainId, token, release);
|
128
|
+
}
|
129
|
+
|
130
|
+
|
139
131
|
function isPolicyHolder(address target) external view returns (bool) {
|
140
132
|
return ERC165Checker.supportsInterface(target, type(IPolicyHolder).interfaceId);
|
141
133
|
}
|
142
134
|
|
143
135
|
|
136
|
+
function isAuthority(address authority) public view returns (bool) {
|
137
|
+
if (!isContract(authority)) {
|
138
|
+
return false;
|
139
|
+
}
|
140
|
+
|
141
|
+
return supportsInterface(authority, type(IAccessManager).interfaceId);
|
142
|
+
}
|
143
|
+
|
144
|
+
|
145
|
+
function isAccessManaged(address target)
|
146
|
+
public
|
147
|
+
view
|
148
|
+
returns (bool)
|
149
|
+
{
|
150
|
+
if (!isContract(target)) {
|
151
|
+
return false;
|
152
|
+
}
|
153
|
+
|
154
|
+
(bool success, ) = target.staticcall(
|
155
|
+
abi.encodeWithSelector(
|
156
|
+
IAccessManaged.authority.selector));
|
157
|
+
|
158
|
+
return success;
|
159
|
+
}
|
160
|
+
|
161
|
+
|
162
|
+
function isRegistered(address registry, address caller, ObjectType expectedType) public view returns (bool) {
|
163
|
+
NftId nftId = IRegistry(registry).getNftIdForAddress(caller);
|
164
|
+
if (nftId.eqz()) {
|
165
|
+
return false;
|
166
|
+
}
|
167
|
+
|
168
|
+
return IRegistry(registry).getObjectInfo(nftId).objectType == expectedType;
|
169
|
+
}
|
170
|
+
|
171
|
+
|
172
|
+
function isService(address service) public view returns (bool) {
|
173
|
+
if (!isContract(service)) {
|
174
|
+
return false;
|
175
|
+
}
|
176
|
+
|
177
|
+
return supportsInterface(service, type(IService).interfaceId);
|
178
|
+
}
|
179
|
+
|
180
|
+
|
144
181
|
function isRegistry(address registry) public view returns (bool) {
|
145
182
|
if (!isContract(registry)) {
|
146
183
|
return false;
|
@@ -167,6 +204,37 @@ library ContractLib {
|
|
167
204
|
}
|
168
205
|
|
169
206
|
|
207
|
+
function _getAndVerifyComponentAndInstance(
|
208
|
+
IRegistry registry,
|
209
|
+
IRegistry.ObjectInfo memory info,
|
210
|
+
ObjectType expectedType,
|
211
|
+
bool onlyActive
|
212
|
+
)
|
213
|
+
internal
|
214
|
+
view
|
215
|
+
returns (
|
216
|
+
IRegistry.ObjectInfo memory,
|
217
|
+
address instance
|
218
|
+
)
|
219
|
+
{
|
220
|
+
if(info.objectType != expectedType) {
|
221
|
+
revert ErrorContractLibComponentTypeMismatch(
|
222
|
+
info.nftId,
|
223
|
+
expectedType,
|
224
|
+
info.objectType);
|
225
|
+
}
|
226
|
+
|
227
|
+
// get instance and check component is active
|
228
|
+
instance = getAndVerifyInstance(registry, info);
|
229
|
+
_checkComponentActive(instance, info.objectAddress, info.nftId, onlyActive);
|
230
|
+
|
231
|
+
return (
|
232
|
+
info,
|
233
|
+
instance
|
234
|
+
);
|
235
|
+
}
|
236
|
+
|
237
|
+
|
170
238
|
function _checkComponentActive(
|
171
239
|
address instance,
|
172
240
|
address target,
|
@@ -187,36 +255,55 @@ library ContractLib {
|
|
187
255
|
}
|
188
256
|
|
189
257
|
|
190
|
-
function
|
258
|
+
/// @dev Given an object info the function returns the instance address.
|
259
|
+
/// The info may represent a product or any other component.
|
260
|
+
/// If the parent of the provided info is not registered with the correct type, the function reverts.
|
261
|
+
function getAndVerifyInstance(
|
191
262
|
IRegistry registry,
|
192
263
|
IRegistry.ObjectInfo memory info
|
193
264
|
)
|
194
|
-
|
265
|
+
public
|
195
266
|
view
|
196
267
|
returns (address instance)
|
197
268
|
{
|
269
|
+
// get instance for product case
|
198
270
|
if (info.objectType == PRODUCT()) {
|
199
|
-
|
271
|
+
// verify that parent of product is registered instance
|
272
|
+
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(info.parentNftId);
|
273
|
+
if (instanceInfo.objectType != INSTANCE()) {
|
274
|
+
revert ErrorContractLibParentNotInstance(
|
275
|
+
info.nftId,
|
276
|
+
info.parentNftId);
|
277
|
+
}
|
278
|
+
|
279
|
+
// we have verified that parent object is a registerd instance -> we return the instance address
|
280
|
+
return instanceInfo.objectAddress;
|
281
|
+
}
|
282
|
+
|
283
|
+
// not product: verify parent is registered product
|
284
|
+
info = registry.getObjectInfo(info.parentNftId);
|
285
|
+
if (info.objectType != PRODUCT()) {
|
286
|
+
revert ErrorContractLibParentNotProduct(
|
287
|
+
info.nftId,
|
200
288
|
info.parentNftId);
|
201
|
-
}
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
info.parentNftId).parentNftId);
|
289
|
+
}
|
290
|
+
|
291
|
+
// we have verified that parent is registerd product -> we can rely on registry that its parent is an instance
|
292
|
+
return registry.getObjectAddress(info.parentNftId);
|
206
293
|
}
|
207
294
|
|
208
295
|
|
209
|
-
function
|
296
|
+
function _getAndVerifyObjectInfo(
|
210
297
|
IRegistry registry,
|
211
|
-
address
|
298
|
+
address caller
|
212
299
|
)
|
213
300
|
internal
|
214
301
|
view
|
215
302
|
returns (IRegistry.ObjectInfo memory info)
|
216
303
|
{
|
217
|
-
NftId componentNftId = registry.getNftIdForAddress(
|
304
|
+
NftId componentNftId = registry.getNftIdForAddress(caller);
|
218
305
|
if (componentNftId.eqz()) {
|
219
|
-
revert
|
306
|
+
revert ErrorContractLibCallerNotRegistered(caller);
|
220
307
|
}
|
221
308
|
|
222
309
|
info = registry.getObjectInfo(componentNftId);
|
@@ -1,7 +1,6 @@
|
|
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 {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
5
|
|
7
6
|
import {Amount} from "../type/Amount.sol";
|
@@ -13,7 +12,6 @@ import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
13
12
|
/// @dev component base class
|
14
13
|
/// component examples are staking, product, distribution, pool and oracle
|
15
14
|
interface IComponent is
|
16
|
-
IAccessManaged,
|
17
15
|
IRegisterable,
|
18
16
|
ITransferInterceptor
|
19
17
|
{
|
@@ -23,8 +21,6 @@ interface IComponent is
|
|
23
21
|
|
24
22
|
error ErrorComponentNotChainNft(address caller);
|
25
23
|
|
26
|
-
error ErrorComponentTokenAddressNonzero();
|
27
|
-
error ErrorComponentTokenAddressZero();
|
28
24
|
error ErrorComponentWalletAddressZero();
|
29
25
|
error ErrorComponentWalletAddressIsSameAsCurrent();
|
30
26
|
error ErrorComponentWalletNotComponent();
|
@@ -44,7 +40,7 @@ interface IComponent is
|
|
44
40
|
function getTokenHandler() external view returns (TokenHandler tokenHandler);
|
45
41
|
|
46
42
|
/// @dev defines the wallet address used to hold the ERC20 tokens related to this component
|
47
|
-
/// the default address is the
|
43
|
+
/// the default address is the token handler address
|
48
44
|
function getWallet() external view returns (address walletAddress);
|
49
45
|
|
50
46
|
/// @dev returns true iff this compoent intercepts nft minting and transfers for objects registered by this component
|
@@ -16,20 +16,20 @@ import {VersionPart} from "../type/Version.sol";
|
|
16
16
|
interface IComponentService is
|
17
17
|
IService
|
18
18
|
{
|
19
|
-
|
20
|
-
error
|
19
|
+
// registerProduct
|
20
|
+
error ErrorComponentServiceCallerNotInstance(address caller);
|
21
|
+
error ErrorComponentServiceNotProduct(address product);
|
22
|
+
error ErrorComponentServiceTokenInvalid(address token);
|
23
|
+
|
24
|
+
// registerComponent
|
25
|
+
error ErrorComponentServiceCallerNotProduct(address caller);
|
21
26
|
error ErrorComponentServiceNotComponent(address component);
|
22
|
-
|
23
|
-
error
|
24
|
-
error
|
25
|
-
error
|
26
|
-
error
|
27
|
-
error
|
28
|
-
error ErrorComponentServiceParentNotProduct(NftId nftId, ObjectType objectType);
|
29
|
-
|
30
|
-
error ErrorComponentServiceNotRegistered(address instanceAddress);
|
31
|
-
error ErrorComponentServiceNotInstance(address instanceAddress, ObjectType objectType);
|
32
|
-
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);
|
33
33
|
|
34
34
|
error ErrorProductServiceNoDistributionExpected(NftId productNftId);
|
35
35
|
error ErrorProductServiceDistributionAlreadyRegistered(NftId productNftId, NftId distributionNftId);
|
@@ -45,6 +45,7 @@ interface IComponentService is
|
|
45
45
|
error ErrorComponentServiceWithdrawAmountExceedsLimit(Amount withdrawnAmount, Amount withdrawLimit);
|
46
46
|
error ErrorComponentServiceWalletAllowanceTooSmall(address wallet, address spender, uint256 allowance, uint256 amount);
|
47
47
|
|
48
|
+
event LogComponentServiceComponentLocked(address component, bool locked);
|
48
49
|
event LogComponentServiceRegistered(NftId instanceNftId, NftId componentNftId, ObjectType componentType, address component, address token, address initialOwner);
|
49
50
|
event LogComponentServiceWalletAddressChanged(NftId componentNftId, address currentWallet, address newWallet);
|
50
51
|
event LogComponentServiceWalletTokensTransferred(NftId componentNftId, address currentWallet, address newWallet, uint256 currentBalance);
|
@@ -56,9 +57,9 @@ interface IComponentService is
|
|
56
57
|
NftId nftId,
|
57
58
|
string feeName,
|
58
59
|
UFixed previousFractionalFee,
|
59
|
-
|
60
|
+
Amount previousFixedFee,
|
60
61
|
UFixed newFractionalFee,
|
61
|
-
|
62
|
+
Amount newFixedFee
|
62
63
|
);
|
63
64
|
|
64
65
|
//-------- component ----------------------------------------------------//
|
@@ -67,18 +68,12 @@ interface IComponentService is
|
|
67
68
|
/// Reverts if the component's token handler wallet is not the token handler itself.
|
68
69
|
function approveTokenHandler(IERC20Metadata token, Amount amount) external;
|
69
70
|
|
70
|
-
/// @dev
|
71
|
-
///
|
72
|
-
function approveStakingTokenHandler(IERC20Metadata token, Amount amount) external;
|
73
|
-
|
74
|
-
/// @dev Sets the components associated wallet address
|
71
|
+
/// @dev Sets the components associated wallet address.
|
72
|
+
/// To set the wallet to the token handler contract, use address(0) as the new wallet adress.
|
75
73
|
function setWallet(address newWallet) external;
|
76
74
|
|
77
|
-
/// @dev Locks/Unlocks the
|
78
|
-
function
|
79
|
-
|
80
|
-
/// @dev Locks/Unlocks the given component - call from component
|
81
|
-
function setLockedFromComponent(address componentAddress, bool locked) external;
|
75
|
+
/// @dev Locks/Unlocks the calling component.
|
76
|
+
function setLocked(bool locked) external;
|
82
77
|
|
83
78
|
/// @dev Withdraw fees from the distribution component. Only component owner is allowed to withdraw fees.
|
84
79
|
/// @param withdrawAmount the amount to withdraw
|
@@ -91,7 +86,7 @@ interface IComponentService is
|
|
91
86
|
//-------- product ------------------------------------------------------//
|
92
87
|
|
93
88
|
/// @dev Registers the specified product component for the instance (sender)
|
94
|
-
function registerProduct(address product) external returns (NftId productNftId);
|
89
|
+
function registerProduct(address product, address token) external returns (NftId productNftId);
|
95
90
|
|
96
91
|
function setProductFees(
|
97
92
|
Fee memory productFee, // product fee on net premium
|
@@ -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);
|
@@ -1,19 +1,29 @@
|
|
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
6
|
import {INftOwnable} from "./INftOwnable.sol";
|
7
|
+
import {IRelease} from "../registry/IRelease.sol";
|
5
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
6
|
-
import {VersionPart} from "../type/Version.sol";
|
7
9
|
|
8
10
|
/// @title IRegisterable
|
9
11
|
/// @dev Marks contracts that are intended to be registered in the registry.
|
10
12
|
///
|
11
13
|
interface IRegisterable is
|
12
|
-
|
14
|
+
IAccessManaged,
|
15
|
+
INftOwnable,
|
16
|
+
IRelease
|
13
17
|
{
|
14
|
-
|
15
|
-
|
16
|
-
|
18
|
+
// __Registerable_init
|
19
|
+
error ErrorAuthorityInvalid(address authority);
|
20
|
+
|
21
|
+
// onlyActive()
|
22
|
+
error ErrorRegisterableNotActive();
|
23
|
+
|
24
|
+
/// @dev Returns true iff this contract managed by its authority is active.
|
25
|
+
/// Queries the IAccessManaged.authority().
|
26
|
+
function isActive() external view returns (bool active);
|
17
27
|
|
18
28
|
/// @dev retuns the object info relevant for registering for this contract
|
19
29
|
/// IMPORTANT information returned by this function may only be used
|
@@ -9,17 +9,15 @@ import {ObjectType} from "../type/ObjectType.sol";
|
|
9
9
|
import {RoleId} from "../type/RoleId.sol";
|
10
10
|
|
11
11
|
interface IService is
|
12
|
+
IAccessManaged,
|
12
13
|
IRegisterable,
|
13
|
-
IVersionable
|
14
|
-
IAccessManaged
|
14
|
+
IVersionable
|
15
15
|
{
|
16
|
-
error ErrorServiceNotImplemented();
|
17
|
-
|
18
16
|
/// @dev returns the domain for this service.
|
19
17
|
/// In any GIF release only one service for any given domain may be deployed.
|
20
18
|
function getDomain() external pure returns(ObjectType serviceDomain);
|
21
19
|
|
22
20
|
/// @dev returns the GIF release specific role id.
|
23
21
|
/// These role ids are used to authorize service to service communication.
|
24
|
-
function getRoleId() external
|
22
|
+
function getRoleId() external view returns(RoleId serviceRoleId);
|
25
23
|
}
|
@@ -11,13 +11,21 @@ contract InitializableERC165 is
|
|
11
11
|
mapping(bytes4 => bool) private _isSupported;
|
12
12
|
|
13
13
|
// @dev initializes with support for ERC165
|
14
|
-
function
|
14
|
+
function __ERC165_init() internal onlyInitializing() {
|
15
|
+
_initializeERC165();
|
16
|
+
}
|
17
|
+
|
18
|
+
function _initializeERC165() internal {
|
15
19
|
_isSupported[type(IERC165).interfaceId] = true;
|
16
20
|
}
|
17
21
|
|
18
22
|
// @dev register support for provided interfaceId
|
19
23
|
// includes initialization for ERC165_ID if not yet done
|
20
24
|
function _registerInterface(bytes4 interfaceId) internal onlyInitializing() {
|
25
|
+
_registerInterfaceNotInitializing(interfaceId);
|
26
|
+
}
|
27
|
+
|
28
|
+
function _registerInterfaceNotInitializing(bytes4 interfaceId) internal{
|
21
29
|
_isSupported[interfaceId] = true;
|
22
30
|
}
|
23
31
|
|
@@ -20,7 +20,7 @@ import {NftId} from "../type/NftId.sol";
|
|
20
20
|
import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
|
21
21
|
import {VersionPart} from "../type/Version.sol";
|
22
22
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
23
|
-
import {IAccess} from "../
|
23
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
24
24
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
25
25
|
import {VersionPart} from "../type/Version.sol";
|
26
26
|
|
@@ -52,12 +52,12 @@ abstract contract InstanceLinkedComponent is
|
|
52
52
|
}
|
53
53
|
|
54
54
|
/// @inheritdoc IInstanceLinkedComponent
|
55
|
-
function getInstance() public view override returns (IInstance instance) {
|
55
|
+
function getInstance() public view virtual override returns (IInstance instance) {
|
56
56
|
return _getInstanceLinkedComponentStorage()._instance;
|
57
57
|
}
|
58
58
|
|
59
59
|
/// @inheritdoc IInstanceLinkedComponent
|
60
|
-
function getAuthorization() external view returns (IAuthorization authorization) {
|
60
|
+
function getAuthorization() external view virtual returns (IAuthorization authorization) {
|
61
61
|
return _getInstanceLinkedComponentStorage()._initialAuthorization;
|
62
62
|
}
|
63
63
|
|
@@ -71,7 +71,6 @@ abstract contract InstanceLinkedComponent is
|
|
71
71
|
address registry,
|
72
72
|
NftId parentNftId,
|
73
73
|
string memory name,
|
74
|
-
address token,
|
75
74
|
ObjectType componentType,
|
76
75
|
IAuthorization authorization,
|
77
76
|
bool isInterceptor,
|
@@ -99,7 +98,6 @@ abstract contract InstanceLinkedComponent is
|
|
99
98
|
registry,
|
100
99
|
parentNftId,
|
101
100
|
name,
|
102
|
-
token,
|
103
101
|
componentType,
|
104
102
|
isInterceptor,
|
105
103
|
initialOwner,
|
@@ -112,7 +110,6 @@ abstract contract InstanceLinkedComponent is
|
|
112
110
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
113
111
|
|
114
112
|
// register interfaces
|
115
|
-
_registerInterface(type(IAccessManaged).interfaceId);
|
116
113
|
_registerInterface(type(IInstanceLinkedComponent).interfaceId);
|
117
114
|
}
|
118
115
|
|
@@ -134,7 +131,7 @@ abstract contract InstanceLinkedComponent is
|
|
134
131
|
|
135
132
|
// if not product parent is product, and parent of product is instance
|
136
133
|
IRegistry registry = _checkAndGetRegistry(registryAddress, parentNftId, PRODUCT());
|
137
|
-
return registry.
|
134
|
+
return registry.getParentNftId(parentNftId);
|
138
135
|
}
|
139
136
|
|
140
137
|
/// @dev checks the and gets registry.
|
@@ -41,15 +41,15 @@ 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
|
}
|
48
48
|
|
49
49
|
|
50
|
-
/// @dev
|
51
|
-
// used in
|
52
|
-
function
|
50
|
+
/// @dev Initialization for upgradable contracts.
|
51
|
+
// used in __Registerable_init, ProxyManager._preDeployChecksAndSetup
|
52
|
+
function __NftOwnable_init(
|
53
53
|
address registry,
|
54
54
|
address initialOwner
|
55
55
|
)
|
@@ -57,8 +57,8 @@ contract NftOwnable is
|
|
57
57
|
virtual
|
58
58
|
onlyInitializing()
|
59
59
|
{
|
60
|
-
|
61
|
-
|
60
|
+
__ERC165_init();
|
61
|
+
__RegistryLinked_init(registry);
|
62
62
|
|
63
63
|
if(initialOwner == address(0)) {
|
64
64
|
revert ErrorNftOwnableInitialOwnerZero();
|
@@ -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
|
|