@etherisc/gif-next 3.0.0-cf1abe2-268 → 3.0.0-cf20ffd-765
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 +10 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +83 -164
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +119 -117
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +48 -93
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +145 -168
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +150 -126
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +101 -43
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
- 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 +85 -83
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +77 -222
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +59 -168
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +252 -238
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +154 -144
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +58 -180
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +145 -111
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -246
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +137 -279
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -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/FlightNft.sol/FlightNft.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1278 -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 +1391 -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 +2214 -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/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -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 +104 -255
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +108 -240
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +125 -257
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +116 -248
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +69 -77
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +47 -99
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +126 -92
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +72 -166
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +225 -247
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +238 -77
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +175 -149
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +116 -108
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +183 -133
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +153 -103
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +80 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +21 -21
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +9 -4
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +83 -209
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
- 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 +63 -166
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +103 -94
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +69 -159
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +168 -163
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +133 -115
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +78 -168
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +158 -212
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -133
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +73 -107
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +76 -179
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +142 -138
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +78 -168
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +244 -26
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +221 -277
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +134 -144
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +74 -149
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +116 -114
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +59 -149
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -203
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -136
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +43 -82
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +59 -92
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +91 -97
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +45 -84
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +58 -161
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +51 -103
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +154 -188
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +132 -126
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +96 -163
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +59 -149
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +78 -174
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +111 -113
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +4 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +70 -163
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +218 -204
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -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 +114 -322
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +221 -242
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -82
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +246 -287
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +114 -119
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +236 -245
- 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 +217 -156
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +39 -23
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +41 -161
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +554 -182
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +145 -119
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +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/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +558 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +40 -173
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +457 -97
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +58 -161
- 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 +30 -3
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +27 -79
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +34 -73
- 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 +59 -149
- 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 +36 -17
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +26 -78
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +33 -72
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -82
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -70
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +182 -283
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -300
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +235 -352
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -31
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +128 -116
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +84 -357
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +115 -109
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +273 -281
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +22 -35
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -21
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
- 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 +4 -4
- 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 +2 -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/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +90 -67
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
- package/contracts/accounting/AccountingService.sol +22 -33
- package/contracts/accounting/AccountingServiceManager.sol +6 -4
- package/contracts/accounting/IAccountingService.sol +7 -8
- package/contracts/authorization/AccessAdmin.sol +34 -55
- package/contracts/authorization/AccessAdminLib.sol +29 -15
- package/contracts/authorization/AccessManagerCloneable.sol +52 -24
- package/contracts/authorization/Authorization.sol +2 -2
- package/contracts/authorization/IAccessAdmin.sol +11 -10
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistribution.sol +2 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
- package/contracts/distribution/Distribution.sol +2 -0
- package/contracts/distribution/DistributionService.sol +44 -43
- package/contracts/distribution/DistributionServiceManager.sol +6 -4
- package/contracts/distribution/IDistributionComponent.sol +0 -2
- package/contracts/distribution/IDistributionService.sol +8 -7
- package/contracts/examples/fire/FirePool.sol +4 -0
- package/contracts/examples/fire/FireProduct.sol +4 -0
- package/contracts/examples/flight/FlightLib.sol +337 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +226 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +687 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
- package/contracts/examples/flight/FlightProductManager.sol +49 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
- package/contracts/instance/BaseStore.sol +4 -0
- package/contracts/instance/BundleSet.sol +7 -8
- package/contracts/instance/IBaseStore.sol +8 -0
- package/contracts/instance/IInstance.sol +8 -8
- package/contracts/instance/IInstanceService.sol +6 -4
- package/contracts/instance/Instance.sol +12 -8
- package/contracts/instance/InstanceAdmin.sol +17 -11
- package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
- package/contracts/instance/InstanceReader.sol +59 -23
- package/contracts/instance/InstanceService.sol +28 -18
- package/contracts/instance/InstanceServiceManager.sol +6 -4
- package/contracts/instance/InstanceStore.sol +14 -14
- package/contracts/instance/ProductStore.sol +14 -14
- package/contracts/instance/RiskSet.sol +6 -7
- package/contracts/instance/base/BalanceStore.sol +7 -7
- package/contracts/instance/base/Cloneable.sol +10 -4
- package/contracts/instance/base/ObjectSet.sol +3 -3
- package/contracts/oracle/BasicOracle.sol +3 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
- package/contracts/oracle/IOracleService.sol +21 -17
- package/contracts/oracle/Oracle.sol +6 -5
- package/contracts/oracle/OracleService.sol +68 -38
- package/contracts/oracle/OracleServiceManager.sol +6 -4
- package/contracts/pool/BasicPool.sol +4 -2
- package/contracts/pool/BasicPoolAuthorization.sol +4 -5
- package/contracts/pool/BundleService.sol +22 -28
- package/contracts/pool/BundleServiceManager.sol +7 -5
- package/contracts/pool/IBundleService.sol +9 -10
- package/contracts/pool/IPoolComponent.sol +1 -1
- package/contracts/pool/IPoolService.sol +14 -13
- package/contracts/pool/Pool.sol +3 -1
- package/contracts/pool/PoolLib.sol +102 -5
- package/contracts/pool/PoolService.sol +101 -67
- package/contracts/pool/PoolServiceManager.sol +6 -4
- package/contracts/product/ApplicationService.sol +34 -13
- package/contracts/product/ApplicationServiceManager.sol +6 -4
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +7 -7
- package/contracts/product/ClaimService.sol +35 -11
- package/contracts/product/ClaimServiceManager.sol +7 -5
- package/contracts/product/IApplicationService.sol +8 -8
- package/contracts/product/IClaimService.sol +9 -9
- package/contracts/product/IPolicyService.sol +8 -7
- package/contracts/product/IRiskService.sol +4 -5
- package/contracts/product/PolicyService.sol +58 -45
- package/contracts/product/PolicyServiceLib.sol +5 -3
- package/contracts/product/PolicyServiceManager.sol +6 -4
- package/contracts/product/PricingService.sol +8 -7
- package/contracts/product/PricingServiceManager.sol +6 -4
- package/contracts/product/Product.sol +2 -0
- package/contracts/product/RiskService.sol +42 -10
- package/contracts/product/RiskServiceManager.sol +6 -4
- package/contracts/registry/ChainNft.sol +2 -2
- package/contracts/registry/IRegistry.sol +15 -21
- package/contracts/registry/IRegistryService.sol +14 -10
- package/contracts/registry/IRelease.sol +3 -0
- package/contracts/registry/Registry.sol +82 -126
- package/contracts/registry/RegistryAdmin.sol +29 -12
- package/contracts/registry/RegistryAuthorization.sol +3 -6
- package/contracts/registry/RegistryService.sol +82 -99
- package/contracts/registry/RegistryServiceManager.sol +11 -4
- package/contracts/registry/ReleaseAdmin.sol +27 -13
- package/contracts/registry/ReleaseRegistry.sol +81 -72
- package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
- package/contracts/registry/TokenRegistry.sol +18 -9
- package/contracts/shared/Component.sol +22 -27
- package/contracts/shared/ComponentService.sol +168 -49
- package/contracts/shared/ComponentServiceManager.sol +7 -5
- package/contracts/shared/ContractLib.sol +93 -359
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +3 -9
- package/contracts/shared/IComponentService.sol +46 -10
- package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
- package/contracts/shared/INftOwnable.sol +3 -1
- package/contracts/shared/IRegisterable.sol +3 -14
- package/contracts/shared/IRegistryLinked.sol +3 -1
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +130 -39
- package/contracts/shared/NftOwnable.sol +22 -9
- package/contracts/shared/PolicyHolder.sol +4 -2
- package/contracts/shared/Registerable.sol +20 -37
- package/contracts/shared/RegistryLinked.sol +23 -4
- package/contracts/shared/Service.sol +9 -8
- package/contracts/shared/TokenHandler.sol +6 -9
- package/contracts/staking/IStaking.sol +35 -33
- package/contracts/staking/IStakingService.sol +7 -16
- package/contracts/staking/Staking.sol +38 -32
- package/contracts/staking/StakingLib.sol +1 -3
- package/contracts/staking/StakingManager.sol +6 -3
- package/contracts/staking/StakingReader.sol +17 -9
- package/contracts/staking/StakingService.sol +15 -18
- package/contracts/staking/StakingServiceManager.sol +8 -4
- package/contracts/staking/StakingStore.sol +11 -11
- package/contracts/staking/TargetHandler.sol +6 -5
- package/contracts/type/ObjectType.sol +2 -31
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/String.sol +30 -0
- package/contracts/type/Timestamp.sol +10 -1
- package/contracts/type/Version.sol +16 -15
- package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
- package/contracts/upgradeability/ProxyManager.sol +54 -46
- package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
- package/package.json +4 -3
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
- package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
- package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
- package/contracts/shared/IVersionable.sol +0 -19
- package/contracts/shared/Versionable.sol +0 -47
@@ -19,9 +19,9 @@ interface IRegistry is
|
|
19
19
|
IERC165
|
20
20
|
{
|
21
21
|
|
22
|
-
event LogRegistryObjectRegistered(NftId nftId, NftId parentNftId, ObjectType objectType,
|
23
|
-
event LogRegistryServiceRegistered(VersionPart
|
24
|
-
event LogRegistryChainRegistryRegistered(NftId nftId, uint256 chainId, address chainRegistryAddress);
|
22
|
+
event LogRegistryObjectRegistered(NftId indexed nftId, NftId indexed parentNftId, ObjectType indexed objectType, bool isInterceptor, address objectAddress, address initialOwner);
|
23
|
+
event LogRegistryServiceRegistered(NftId indexed nftId, VersionPart indexed majorVersion, ObjectType indexed domain);
|
24
|
+
event LogRegistryChainRegistryRegistered(NftId indexed nftId, uint256 indexed chainId, address indexed chainRegistryAddress);
|
25
25
|
|
26
26
|
// initialize
|
27
27
|
error ErrorRegistryCallerNotDeployer();
|
@@ -49,7 +49,6 @@ interface IRegistry is
|
|
49
49
|
error ErrorRegistryCoreTypeRegistration();
|
50
50
|
|
51
51
|
// _register()
|
52
|
-
error ErrorRegistryReleaseMismatch(VersionPart objectrelease, VersionPart parentRelease, VersionPart senderRelease);
|
53
52
|
error ErrorRegistryGlobalRegistryAsParent(address objectAddress, ObjectType objectType);
|
54
53
|
error ErrorRegistryTypeCombinationInvalid(address objectAddress, ObjectType objectType, ObjectType parentType);
|
55
54
|
error ErrorRegistryContractAlreadyRegistered(address objectAddress);
|
@@ -59,10 +58,13 @@ interface IRegistry is
|
|
59
58
|
NftId nftId;
|
60
59
|
NftId parentNftId;
|
61
60
|
ObjectType objectType;
|
62
|
-
VersionPart release;
|
63
61
|
bool isInterceptor;
|
64
62
|
// slot 1
|
65
63
|
address objectAddress;
|
64
|
+
// slot 2
|
65
|
+
address initialOwner;
|
66
|
+
// slot 3
|
67
|
+
bytes data;
|
66
68
|
}
|
67
69
|
|
68
70
|
/// @dev Registers a registry contract for a specified chain.
|
@@ -70,30 +72,28 @@ interface IRegistry is
|
|
70
72
|
function registerRegistry(
|
71
73
|
NftId nftId,
|
72
74
|
uint256 chainId,
|
73
|
-
address chainRegistryAddress
|
74
|
-
VersionPart release
|
75
|
+
address chainRegistryAddress
|
75
76
|
) external;
|
76
77
|
|
77
78
|
/// @dev Register a service with using the provided domain and version.
|
78
79
|
/// The function returns a newly minted service NFT ID.
|
79
80
|
/// May only be used to register services.
|
80
81
|
function registerService(
|
81
|
-
ObjectInfo memory
|
82
|
-
|
83
|
-
ObjectType
|
84
|
-
bytes memory data
|
82
|
+
ObjectInfo memory serviceInfo,
|
83
|
+
VersionPart serviceVersion,
|
84
|
+
ObjectType serviceDomain
|
85
85
|
) external returns(NftId nftId);
|
86
86
|
|
87
87
|
/// @dev Register an object with a known core type.
|
88
88
|
/// The function returns a newly minted object NFT ID.
|
89
89
|
/// May not be used to register services.
|
90
|
-
function register(ObjectInfo memory info
|
90
|
+
function register(ObjectInfo memory info) external returns (NftId nftId);
|
91
91
|
|
92
92
|
/// @dev Register an object with a custom type.
|
93
93
|
/// The function returns a newly minted object NFT ID.
|
94
94
|
/// This function is reserved for GIF releases > 3.
|
95
95
|
/// May not be used to register known core types.
|
96
|
-
function registerWithCustomType(ObjectInfo memory info
|
96
|
+
function registerWithCustomType(ObjectInfo memory info) external returns (NftId nftId);
|
97
97
|
|
98
98
|
function getInitialRelease() external view returns (VersionPart);
|
99
99
|
|
@@ -126,15 +126,9 @@ interface IRegistry is
|
|
126
126
|
|
127
127
|
function getParentNftId(NftId nftId) external view returns (NftId parentNftId);
|
128
128
|
|
129
|
-
function
|
129
|
+
function isObjectType(NftId nftId, ObjectType expectedObjectType) external view returns (bool);
|
130
130
|
|
131
|
-
function
|
132
|
-
|
133
|
-
function isObjectType(NftId nftId, ObjectType expectedObjectType, VersionPart expectedRelease) external view returns (bool);
|
134
|
-
|
135
|
-
function isObjectType(address contractAddress, ObjectType expectedObjectType, VersionPart expectedRelease) external view returns (bool);
|
136
|
-
|
137
|
-
function getObjectRelease(NftId nftId) external view returns (VersionPart release);
|
131
|
+
function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool);
|
138
132
|
|
139
133
|
function getObjectAddress(NftId nftId) external view returns (address objectAddress);
|
140
134
|
|
@@ -19,12 +19,13 @@ interface IRegistryService is
|
|
19
19
|
{
|
20
20
|
error ErrorRegistryServiceNotRegistryOwner();
|
21
21
|
|
22
|
-
|
23
|
-
error
|
24
|
-
error
|
22
|
+
error ErrorRegistryServiceNotService(address notService);
|
23
|
+
error ErrorRegistryServiceNotInstance(address notInstance);
|
24
|
+
error ErrorRegistryServiceNotProduct(address notProduct);
|
25
|
+
error ErrorRegistryServiceNotComponent(address notComponent);
|
26
|
+
error ErrorRegistryServiceNotProductLinkedComponent(address notProductLinkedComponent);
|
25
27
|
|
26
28
|
error ErrorRegistryServiceRegisterableAddressInvalid(IRegisterable registerable, address found);
|
27
|
-
error ErrorRegistryServiceRegisterableParentInvalid(IRegisterable registerable, NftId expected, NftId found);
|
28
29
|
error ErrorRegistryServiceRegisterableTypeInvalid(IRegisterable registerable, ObjectType expected, ObjectType found);
|
29
30
|
error ErrorRegistryServiceRegisterableOwnerInvalid(IRegisterable registerable, address expected, address found);
|
30
31
|
error ErrorRegistryServiceRegisterableOwnerZero(IRegisterable registerable);
|
@@ -39,20 +40,23 @@ interface IRegistryService is
|
|
39
40
|
error ErrorRegistryServiceInvalidInitialOwner(address initialOwner);
|
40
41
|
error ErrorRegistryServiceInvalidAddress(address registerableAddress);
|
41
42
|
|
42
|
-
function registerStake(IRegistry.ObjectInfo memory info
|
43
|
+
function registerStake(IRegistry.ObjectInfo memory info)
|
43
44
|
external returns(NftId nftId);
|
44
45
|
|
45
|
-
function registerInstance(IRegisterable instance, address
|
46
|
+
function registerInstance(IRegisterable instance, address owner)
|
46
47
|
external returns(IRegistry.ObjectInfo memory info);
|
47
48
|
|
48
|
-
function
|
49
|
+
function registerProduct(IComponent product, address owner)
|
49
50
|
external returns(IRegistry.ObjectInfo memory info);
|
50
51
|
|
51
|
-
function
|
52
|
+
function registerProductLinkedComponent(IComponent component, ObjectType objectType, address owner)
|
53
|
+
external returns(IRegistry.ObjectInfo memory info);
|
54
|
+
|
55
|
+
function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
52
56
|
|
53
|
-
function registerPolicy(IRegistry.ObjectInfo memory info
|
57
|
+
function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
54
58
|
|
55
|
-
function registerBundle(IRegistry.ObjectInfo memory info
|
59
|
+
function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
56
60
|
|
57
61
|
}
|
58
62
|
|
@@ -2,7 +2,6 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
5
|
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
7
6
|
import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
|
8
7
|
|
@@ -16,10 +15,7 @@ import {IRelease} from "./IRelease.sol";
|
|
16
15
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
17
16
|
import {IStaking} from "../staking/IStaking.sol";
|
18
17
|
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
19
|
-
import {TokenRegistry} from "./TokenRegistry.sol";
|
20
18
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
21
|
-
import {Versionable} from "../shared/Versionable.sol";
|
22
|
-
import {VersionLib, Version} from "../type/Version.sol";
|
23
19
|
|
24
20
|
/// @dev IMPORTANT
|
25
21
|
// Each NFT minted by registry is accosiated with:
|
@@ -33,27 +29,20 @@ import {VersionLib, Version} from "../type/Version.sol";
|
|
33
29
|
// 5) registerRegistry() -> registers IRegistry address (from different chain) by GifAdmin. Works ONLY on mainnet.
|
34
30
|
// Note: getters by address MUST not be used with this address (will return 0 or data related to different object or even revert)
|
35
31
|
|
36
|
-
|
37
|
-
function GIF_INITIAL_RELEASE() pure returns (VersionPart) {
|
38
|
-
return VersionPartLib.toVersionPart(3);
|
39
|
-
}
|
40
|
-
|
41
|
-
|
42
32
|
/// @dev Chain Registry contract implementing IRegistry.
|
43
33
|
/// IRegistry for method details.
|
44
34
|
contract Registry is
|
45
35
|
Initializable,
|
46
36
|
AccessManaged,
|
47
|
-
Versionable,
|
48
37
|
IRegistry
|
49
38
|
{
|
50
39
|
/// @dev Protocol NFT ID
|
51
40
|
NftId public immutable PROTOCOL_NFT_ID;
|
52
41
|
|
53
|
-
/// @dev
|
42
|
+
/// @dev Gobal registry NFT ID
|
54
43
|
NftId public immutable GLOBAL_REGISTRY_NFT_ID;
|
55
44
|
|
56
|
-
/// @dev
|
45
|
+
/// @dev Gobal registry address on mainnet.
|
57
46
|
address public immutable GLOBAL_REGISTRY_ADDRESS;
|
58
47
|
|
59
48
|
/// @dev Registry NFT ID
|
@@ -77,9 +66,8 @@ contract Registry is
|
|
77
66
|
mapping(uint256 chainId => NftId registryNftId) private _registryNftIdByChainId;
|
78
67
|
uint256[] private _chainId;
|
79
68
|
|
80
|
-
/// @dev keep track of object info
|
69
|
+
/// @dev keep track of object info and address reverse lookup
|
81
70
|
mapping(NftId nftId => ObjectInfo info) private _info;
|
82
|
-
mapping(NftId nftId => bytes data) private _data;
|
83
71
|
mapping(address object => NftId nftId) private _nftIdByAddress;
|
84
72
|
|
85
73
|
/// @dev keep track of service addresses by version and domain
|
@@ -156,8 +144,7 @@ contract Registry is
|
|
156
144
|
function registerRegistry(
|
157
145
|
NftId nftId,
|
158
146
|
uint256 chainId,
|
159
|
-
address registryAddress
|
160
|
-
VersionPart release
|
147
|
+
address registryAddress
|
161
148
|
)
|
162
149
|
external
|
163
150
|
restricted()
|
@@ -191,19 +178,20 @@ contract Registry is
|
|
191
178
|
nftId: nftId,
|
192
179
|
parentNftId: REGISTRY_NFT_ID,
|
193
180
|
objectType: REGISTRY(),
|
194
|
-
release: release,
|
195
181
|
isInterceptor: false,
|
196
|
-
objectAddress: registryAddress
|
182
|
+
objectAddress: registryAddress,
|
183
|
+
initialOwner: NFT_LOCK_ADDRESS,
|
184
|
+
data: ""
|
185
|
+
}),
|
197
186
|
false); // do not update address lookup for objects on a different chain
|
198
187
|
}
|
199
188
|
|
200
189
|
// TODO limit service owner to registry admin?
|
201
190
|
/// @inheritdoc IRegistry
|
202
191
|
function registerService(
|
203
|
-
ObjectInfo memory info,
|
204
|
-
|
205
|
-
ObjectType domain
|
206
|
-
bytes memory data
|
192
|
+
ObjectInfo memory info,
|
193
|
+
VersionPart version,
|
194
|
+
ObjectType domain
|
207
195
|
)
|
208
196
|
external
|
209
197
|
restricted()
|
@@ -216,13 +204,12 @@ contract Registry is
|
|
216
204
|
}
|
217
205
|
|
218
206
|
// version is defined
|
219
|
-
|
220
|
-
if(release.eqz()) {
|
207
|
+
if(version.eqz()) {
|
221
208
|
revert ErrorRegistryServiceVersionZero(service);
|
222
209
|
}
|
223
210
|
// service domain is defined
|
224
211
|
if(domain.eqz()) {
|
225
|
-
revert ErrorRegistryServiceDomainZero(service,
|
212
|
+
revert ErrorRegistryServiceDomainZero(service, version);
|
226
213
|
}
|
227
214
|
|
228
215
|
// service has proper type
|
@@ -232,31 +219,30 @@ contract Registry is
|
|
232
219
|
|
233
220
|
// service parent has registry type
|
234
221
|
if(info.parentNftId != REGISTRY_NFT_ID) {
|
235
|
-
revert ErrorRegistryServiceParentNotRegistry(service,
|
222
|
+
revert ErrorRegistryServiceParentNotRegistry(service, version, info.parentNftId);
|
236
223
|
}
|
237
224
|
|
238
225
|
// service has not already been registered
|
239
|
-
if(_service[
|
240
|
-
revert ErrorRegistryServiceDomainAlreadyRegistered(service,
|
226
|
+
if(_service[version][domain] != address(0)) {
|
227
|
+
revert ErrorRegistryServiceDomainAlreadyRegistered(service, version, domain);
|
241
228
|
}
|
242
229
|
|
243
|
-
_service[
|
230
|
+
_service[version][domain] = service;
|
244
231
|
|
245
|
-
emit LogRegistryServiceRegistered(
|
232
|
+
emit LogRegistryServiceRegistered(info.nftId,version, domain);
|
246
233
|
|
247
|
-
nftId = _register(info
|
234
|
+
nftId = _register(info);
|
248
235
|
}
|
249
236
|
|
250
237
|
|
251
238
|
/// @inheritdoc IRegistry
|
252
|
-
function register(ObjectInfo memory info
|
239
|
+
function register(ObjectInfo memory info)
|
253
240
|
external
|
254
241
|
restricted()
|
255
242
|
returns(NftId nftId)
|
256
243
|
{
|
257
244
|
address objectAddress = info.objectAddress;
|
258
245
|
ObjectType objectType = info.objectType;
|
259
|
-
VersionPart parentRelease = _info[info.parentNftId].release;
|
260
246
|
|
261
247
|
// specialized functions have to be used to register registries and services
|
262
248
|
if(objectType == REGISTRY() || objectType == STAKING() || objectType == SERVICE()) {
|
@@ -280,21 +266,18 @@ contract Registry is
|
|
280
266
|
}
|
281
267
|
}
|
282
268
|
|
283
|
-
|
284
|
-
|
285
|
-
nftId = _register(info, initialOwner, data);
|
269
|
+
nftId = _register(info);
|
286
270
|
}
|
287
271
|
|
288
272
|
|
289
273
|
/// @inheritdoc IRegistry
|
290
|
-
function registerWithCustomType(ObjectInfo memory info
|
274
|
+
function registerWithCustomType(ObjectInfo memory info)
|
291
275
|
external
|
292
276
|
restricted()
|
293
277
|
returns(NftId nftId)
|
294
278
|
{
|
295
279
|
ObjectType objectType = info.objectType;
|
296
280
|
ObjectType parentType = _info[info.parentNftId].objectType;
|
297
|
-
VersionPart parentRelease = _info[info.parentNftId].release;
|
298
281
|
|
299
282
|
if(_coreTypes[objectType]) {
|
300
283
|
revert ErrorRegistryCoreTypeRegistration();
|
@@ -310,36 +293,13 @@ contract Registry is
|
|
310
293
|
revert ErrorRegistryTypeCombinationInvalid(info.objectAddress, objectType, parentType);
|
311
294
|
}
|
312
295
|
|
313
|
-
|
314
|
-
|
315
|
-
nftId = _register(info, initialOwner, data);
|
296
|
+
nftId = _register(info);
|
316
297
|
}
|
317
298
|
|
318
|
-
function _checkRelease(
|
319
|
-
VersionPart objectRelease,
|
320
|
-
VersionPart parentRelease,
|
321
|
-
ObjectType parentType
|
322
|
-
) internal view
|
323
|
-
{
|
324
|
-
VersionPart senderRelease = _info[_nftIdByAddress[msg.sender]].release;
|
325
|
-
|
326
|
-
// assume:
|
327
|
-
// 1) only address with role can reach this function -> caller is registered registry service
|
328
|
-
// 2) locked registry service can not call registry -> no "caller is locked" check is needed
|
329
|
-
if(parentType == PROTOCOL()) {
|
330
|
-
// STAKING for PROTOCOL, parent release is 0
|
331
|
-
if(senderRelease != objectRelease) {
|
332
|
-
revert ErrorRegistryReleaseMismatch(objectRelease, parentRelease, senderRelease);
|
333
|
-
}
|
334
|
-
}
|
335
|
-
else if(senderRelease != objectRelease || senderRelease != parentRelease) {
|
336
|
-
revert ErrorRegistryReleaseMismatch(objectRelease, parentRelease, senderRelease);
|
337
|
-
}
|
338
|
-
}
|
339
299
|
|
340
300
|
/// @dev earliest GIF major version
|
341
301
|
function getInitialRelease() external view returns (VersionPart) {
|
342
|
-
return
|
302
|
+
return VersionPartLib.toVersionPart(_releaseRegistry.INITIAL_GIF_VERSION());
|
343
303
|
}
|
344
304
|
|
345
305
|
/// @dev next GIF release version to be released
|
@@ -404,20 +364,13 @@ contract Registry is
|
|
404
364
|
return _info[nftId].parentNftId;
|
405
365
|
}
|
406
366
|
|
407
|
-
function isObjectType(address contractAddress, ObjectType expectedObjectType
|
367
|
+
function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool) {
|
408
368
|
NftId nftId = _nftIdByAddress[contractAddress];
|
409
|
-
return isObjectType(nftId, expectedObjectType
|
410
|
-
}
|
411
|
-
|
412
|
-
function isObjectType(NftId nftId, ObjectType expectedObjectType, VersionPart release) public view returns (bool) {
|
413
|
-
return (
|
414
|
-
_info[nftId].objectType == expectedObjectType &&
|
415
|
-
_info[nftId].release == release
|
416
|
-
);
|
369
|
+
return isObjectType(nftId, expectedObjectType);
|
417
370
|
}
|
418
371
|
|
419
|
-
function
|
420
|
-
return _info[nftId].
|
372
|
+
function isObjectType(NftId nftId, ObjectType expectedObjectType) public view returns (bool) {
|
373
|
+
return _info[nftId].objectType == expectedObjectType;
|
421
374
|
}
|
422
375
|
|
423
376
|
function getObjectAddress(NftId nftId) external view returns (address) {
|
@@ -428,14 +381,6 @@ contract Registry is
|
|
428
381
|
return _info[_nftIdByAddress[object]];
|
429
382
|
}
|
430
383
|
|
431
|
-
function getObjectData(NftId nftId) external view returns (bytes memory data) {
|
432
|
-
return _data[nftId];
|
433
|
-
}
|
434
|
-
|
435
|
-
function getObjectData(address objectAddress) external view returns (bytes memory data) {
|
436
|
-
return _data[_nftIdByAddress[objectAddress]];
|
437
|
-
}
|
438
|
-
|
439
384
|
function isRegistered(NftId nftId) public view returns (bool) {
|
440
385
|
return _info[nftId].objectType.gtz();
|
441
386
|
}
|
@@ -494,12 +439,6 @@ contract Registry is
|
|
494
439
|
return ownerOf(address(this));
|
495
440
|
}
|
496
441
|
|
497
|
-
// Versionable
|
498
|
-
|
499
|
-
function getVersion() public pure override returns (Version) {
|
500
|
-
return VersionLib.toVersion(GIF_INITIAL_RELEASE().toInt(), 0 , 0);
|
501
|
-
}
|
502
|
-
|
503
442
|
// IERC165
|
504
443
|
|
505
444
|
function supportsInterface(bytes4 interfaceId) external pure returns (bool) {
|
@@ -513,49 +452,62 @@ contract Registry is
|
|
513
452
|
// Internals
|
514
453
|
|
515
454
|
/// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
|
516
|
-
function _register(ObjectInfo memory info
|
455
|
+
function _register(ObjectInfo memory info)
|
517
456
|
internal
|
518
457
|
returns(NftId nftId)
|
519
458
|
{
|
459
|
+
ObjectType objectType = info.objectType; // do not care here, never PROTOCOL(), REGISTRY()
|
460
|
+
bool isInterceptor = info.isInterceptor;
|
461
|
+
address objectAddress = info.objectAddress; // do not care here, can be 0
|
462
|
+
address owner = info.initialOwner; // do not care here, can be 0, can be equal info.objectAddress
|
463
|
+
|
520
464
|
NftId parentNftId = info.parentNftId; // do not care here, can not be 0
|
521
465
|
ObjectInfo memory parentInfo = _info[parentNftId];
|
466
|
+
address parentAddress = parentInfo.objectAddress; // can be 0
|
467
|
+
|
468
|
+
// parent is contract -> need to check? -> check before minting
|
469
|
+
// special case: staking: to protocol possible as well
|
470
|
+
// NO LONGER TRUE: special case: global registry nft as parent when not on mainnet -> global registry address is 0
|
471
|
+
// special case: when parentNftId == CHAIN_NFT.mint(), check for zero parent address before mint
|
472
|
+
// special case: when parentNftId == CHAIN_NFT.mint() && objectAddress == initialOwner
|
473
|
+
// Parent can have 0 address in case of STAKE for PROTOCOL / CUSTOM_TYPE for POLICY
|
474
|
+
// But it MUST be registered -> parentType != 0 && parentNftId != 0
|
475
|
+
/*if(objectType != STAKE()) {
|
476
|
+
if(parentAddress == address(0)) {
|
477
|
+
revert ErrorRegistryParentAddressZero();
|
478
|
+
}
|
479
|
+
}*/
|
522
480
|
|
523
481
|
// global registry is never parent when not on mainnet
|
524
482
|
if(block.chainid != 1) {
|
525
483
|
if(parentNftId == GLOBAL_REGISTRY_NFT_ID) {
|
526
|
-
revert ErrorRegistryGlobalRegistryAsParent(
|
484
|
+
revert ErrorRegistryGlobalRegistryAsParent(objectAddress, objectType);
|
527
485
|
}
|
528
486
|
}
|
529
487
|
|
530
488
|
address interceptorAddress = _getInterceptor(
|
531
|
-
|
532
|
-
|
533
|
-
|
489
|
+
isInterceptor,
|
490
|
+
objectType,
|
491
|
+
objectAddress,
|
534
492
|
parentInfo.isInterceptor,
|
535
|
-
|
536
|
-
|
537
|
-
uint256 tokenId = CHAIN_NFT.mint(
|
538
|
-
initialOwner,
|
539
|
-
interceptorAddress,
|
540
|
-
EMPTY_URI);
|
493
|
+
parentAddress);
|
541
494
|
|
495
|
+
uint256 tokenId = CHAIN_NFT.getNextTokenId();
|
542
496
|
nftId = NftIdLib.toNftId(tokenId);
|
543
497
|
info.nftId = nftId;
|
544
498
|
|
545
499
|
_info[nftId] = info;
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
500
|
+
_setAddressForNftId(nftId, objectAddress);
|
501
|
+
|
502
|
+
emit LogRegistryObjectRegistered(nftId, parentNftId, objectType, isInterceptor, objectAddress, owner);
|
503
|
+
|
504
|
+
// calls nft receiver(1) and interceptor(2)
|
505
|
+
uint256 mintedTokenId = CHAIN_NFT.mint(
|
506
|
+
owner,
|
507
|
+
interceptorAddress,
|
508
|
+
EMPTY_URI);
|
550
509
|
|
551
|
-
|
552
|
-
nftId,
|
553
|
-
parentNftId,
|
554
|
-
info.objectType,
|
555
|
-
info.release,
|
556
|
-
info.isInterceptor,
|
557
|
-
info.objectAddress,
|
558
|
-
initialOwner);
|
510
|
+
assert(mintedTokenId == tokenId);
|
559
511
|
}
|
560
512
|
|
561
513
|
/// @dev obtain interceptor address for this nft if applicable, address(0) otherwise
|
@@ -607,11 +559,13 @@ contract Registry is
|
|
607
559
|
nftId: protocolNftId,
|
608
560
|
parentNftId: NftIdLib.zero(),
|
609
561
|
objectType: PROTOCOL(),
|
610
|
-
release: VersionPartLib.toVersionPart(0),
|
611
562
|
isInterceptor: false,
|
612
|
-
objectAddress: address(0)
|
613
|
-
|
563
|
+
objectAddress: address(0),
|
564
|
+
initialOwner: NFT_LOCK_ADDRESS,
|
565
|
+
data: ""}),
|
614
566
|
true);
|
567
|
+
|
568
|
+
emit LogRegistryObjectRegistered(protocolNftId, NftIdLib.zero(), PROTOCOL(), false, address(0), NFT_LOCK_ADDRESS);
|
615
569
|
}
|
616
570
|
|
617
571
|
/// @dev register this registry
|
@@ -630,9 +584,10 @@ contract Registry is
|
|
630
584
|
nftId: GLOBAL_REGISTRY_NFT_ID,
|
631
585
|
parentNftId: PROTOCOL_NFT_ID,
|
632
586
|
objectType: REGISTRY(),
|
633
|
-
release: getRelease(),
|
634
587
|
isInterceptor: false,
|
635
|
-
objectAddress: GLOBAL_REGISTRY_ADDRESS
|
588
|
+
objectAddress: GLOBAL_REGISTRY_ADDRESS,
|
589
|
+
initialOwner: NFT_LOCK_ADDRESS,
|
590
|
+
data: ""}),
|
636
591
|
block.chainid == 1);// update address lookup for global registry only on mainnet
|
637
592
|
|
638
593
|
// if not on mainnet: register this registry with global registry as parent
|
@@ -648,9 +603,10 @@ contract Registry is
|
|
648
603
|
nftId: registryNftId,
|
649
604
|
parentNftId: GLOBAL_REGISTRY_NFT_ID,
|
650
605
|
objectType: REGISTRY(),
|
651
|
-
release: getRelease(),
|
652
606
|
isInterceptor: false,
|
653
|
-
objectAddress: address(this)
|
607
|
+
objectAddress: address(this),
|
608
|
+
initialOwner: NFT_LOCK_ADDRESS,
|
609
|
+
data: ""}),
|
654
610
|
true);
|
655
611
|
}
|
656
612
|
}
|
@@ -674,7 +630,6 @@ contract Registry is
|
|
674
630
|
// register the registry info
|
675
631
|
_registerForNft(
|
676
632
|
info,
|
677
|
-
NFT_LOCK_ADDRESS, // initial owner of any registry
|
678
633
|
updateAddressLookup);
|
679
634
|
}
|
680
635
|
|
@@ -692,10 +647,10 @@ contract Registry is
|
|
692
647
|
nftId: stakingNftId,
|
693
648
|
parentNftId: REGISTRY_NFT_ID,
|
694
649
|
objectType: STAKING(),
|
695
|
-
release: VersionPartLib.toVersionPart(3),
|
696
650
|
isInterceptor: false,
|
697
|
-
objectAddress: _stakingAddress
|
698
|
-
|
651
|
+
objectAddress: _stakingAddress,
|
652
|
+
initialOwner: stakingOwner,
|
653
|
+
data: ""}),
|
699
654
|
true);
|
700
655
|
|
701
656
|
IStaking(_stakingAddress).initializeTokenHandler();
|
@@ -703,8 +658,7 @@ contract Registry is
|
|
703
658
|
|
704
659
|
/// @dev Register the provided object info for the specified NFT ID.
|
705
660
|
function _registerForNft(
|
706
|
-
ObjectInfo memory info,
|
707
|
-
address initialOwner,
|
661
|
+
ObjectInfo memory info,
|
708
662
|
bool updateAddressLookup
|
709
663
|
)
|
710
664
|
internal
|
@@ -716,7 +670,9 @@ contract Registry is
|
|
716
670
|
}
|
717
671
|
|
718
672
|
// calls nft receiver
|
719
|
-
CHAIN_NFT.mint(initialOwner, info.nftId.toInt());
|
673
|
+
CHAIN_NFT.mint(info.initialOwner, info.nftId.toInt());
|
674
|
+
|
675
|
+
emit LogRegistryObjectRegistered(info.nftId, info.parentNftId, info.objectType, info.isInterceptor, info.objectAddress, info.initialOwner);
|
720
676
|
}
|
721
677
|
|
722
678
|
function _setAddressForNftId(NftId nftId, address objectAddress)
|
@@ -7,11 +7,12 @@ import {IService} from "../shared/IService.sol";
|
|
7
7
|
import {IStaking} from "../staking/IStaking.sol";
|
8
8
|
|
9
9
|
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
10
|
+
import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
|
10
11
|
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
11
12
|
import {ObjectType, REGISTRY} from "../type/ObjectType.sol";
|
12
13
|
import {RoleId, RoleIdLib, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE} from "../type/RoleId.sol";
|
13
|
-
import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
|
14
14
|
import {Str} from "../type/String.sol";
|
15
|
+
import {VersionPart} from "../type/Version.sol";
|
15
16
|
|
16
17
|
/*
|
17
18
|
1) GIF_MANAGER_ROLE
|
@@ -51,6 +52,7 @@ contract RegistryAdmin is
|
|
51
52
|
// completeSetup
|
52
53
|
error ErrorRegistryAdminNotRegistry(address registry);
|
53
54
|
|
55
|
+
address internal _registry;
|
54
56
|
address private _releaseRegistry;
|
55
57
|
address private _tokenRegistry;
|
56
58
|
address private _staking;
|
@@ -60,34 +62,49 @@ contract RegistryAdmin is
|
|
60
62
|
constructor() {
|
61
63
|
initialize(
|
62
64
|
address(new AccessManagerCloneable()),
|
63
|
-
"RegistryAdmin"
|
64
|
-
GIF_INITIAL_RELEASE());
|
65
|
+
"RegistryAdmin");
|
65
66
|
}
|
66
67
|
|
67
68
|
|
68
69
|
function completeSetup(
|
70
|
+
address registry,
|
69
71
|
address authorization,
|
72
|
+
VersionPart release,
|
70
73
|
address gifAdmin,
|
71
74
|
address gifManager
|
72
75
|
)
|
73
76
|
public
|
74
77
|
virtual
|
78
|
+
reinitializer(type(uint8).max)
|
75
79
|
{
|
76
80
|
// checks
|
77
|
-
|
78
|
-
|
79
|
-
|
81
|
+
AccessAdminLib.checkRegistry(registry);
|
82
|
+
|
83
|
+
AccessManagerCloneable(
|
84
|
+
authority()).completeSetup(
|
85
|
+
registry,
|
86
|
+
release);
|
87
|
+
|
88
|
+
AccessAdminLib.checkAuthorization(
|
89
|
+
address(_authorization),
|
90
|
+
authorization,
|
91
|
+
REGISTRY(),
|
92
|
+
release,
|
93
|
+
false, // expectServiceAuthorization
|
94
|
+
false); // checkAlreadyInitialized);
|
95
|
+
|
96
|
+
_registry = registry;
|
80
97
|
_authorization = IAuthorization(authorization);
|
81
98
|
|
82
|
-
IRegistry
|
83
|
-
_releaseRegistry =
|
84
|
-
_tokenRegistry =
|
85
|
-
_staking =
|
99
|
+
IRegistry registryContract = IRegistry(registry);
|
100
|
+
_releaseRegistry = registryContract.getReleaseRegistryAddress();
|
101
|
+
_tokenRegistry = registryContract.getTokenRegistryAddress();
|
102
|
+
_staking = registryContract.getStakingAddress();
|
86
103
|
_stakingTargetHandler = address(IStaking(_staking).getTargetHandler());
|
87
104
|
_stakingStore = address(IStaking(_staking).getStakingStore());
|
88
105
|
|
89
106
|
// link nft ownability to registry
|
90
|
-
_linkToNftOwnable(
|
107
|
+
_linkToNftOwnable(_registry);
|
91
108
|
|
92
109
|
_createRoles(_authorization);
|
93
110
|
|
@@ -132,7 +149,7 @@ contract RegistryAdmin is
|
|
132
149
|
internal
|
133
150
|
{
|
134
151
|
// create unchecked registry targets
|
135
|
-
_createTarget(
|
152
|
+
_createTarget(_registry, registryTargetName, TargetType.Core, false);
|
136
153
|
_createTarget(address(this), REGISTRY_ADMIN_TARGET_NAME, TargetType.Core, false);
|
137
154
|
_createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, TargetType.Core, false);
|
138
155
|
_createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, TargetType.Core, false);
|