@etherisc/gif-next 0.0.2-fe88ad7-208 → 0.0.2-ff1bf36-818
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 +59 -18
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1489 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1159 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1502 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +842 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +906 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +914 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +262 -1347
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +389 -202
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +417 -2548
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +668 -397
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +542 -345
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +369 -95
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3469 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1126 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleComponent.sol/IOracleComponent.json} +407 -311
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +303 -292
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1018 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1395 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1466 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +818 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +907 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +408 -341
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1218 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1181 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1625 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +758 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +852 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1243 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1331 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +216 -235
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +788 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +800 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +270 -220
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +448 -275
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → product/IRiskService.sol/IRiskService.json} +135 -132
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1263 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1201 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +702 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +281 -15
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +224 -260
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +539 -35
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +538 -281
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +352 -82
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -96
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +832 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1680 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +804 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +199 -192
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IComponent.sol/IComponent.json} +269 -146
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +262 -237
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +60 -34
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +84 -159
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +940 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +88 -20
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +189 -150
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1412 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +387 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1941 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +217 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +295 -0
- package/contracts/distribution/DistributionService.sol +322 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/distribution/IDistributionService.sol +95 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +40 -43
- package/contracts/instance/IInstance.sol +56 -55
- package/contracts/instance/IInstanceService.sol +73 -21
- package/contracts/instance/Instance.sol +162 -209
- package/contracts/instance/InstanceAdmin.sol +285 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +180 -87
- package/contracts/instance/InstanceService.sol +364 -247
- package/contracts/instance/InstanceServiceManager.sol +13 -27
- package/contracts/instance/InstanceStore.sol +277 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +105 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +20 -42
- package/contracts/instance/module/IAccess.sol +19 -21
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +46 -0
- package/contracts/instance/module/IDistribution.sol +6 -4
- package/contracts/instance/module/IPolicy.sol +56 -17
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +166 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +436 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +134 -0
- package/contracts/pool/IPoolComponent.sol +58 -0
- package/contracts/pool/IPoolService.sol +163 -0
- package/contracts/pool/Pool.sol +328 -0
- package/contracts/pool/PoolService.sol +541 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +250 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/BasicProduct.sol +52 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +416 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +63 -0
- package/contracts/product/IClaimService.sol +100 -0
- package/contracts/product/IPolicyService.sol +84 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +40 -0
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +584 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +304 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +410 -0
- package/contracts/product/RiskService.sol +97 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +16 -1
- package/contracts/registry/IRegistry.sol +67 -24
- package/contracts/registry/IRegistryService.sol +45 -34
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +317 -137
- package/contracts/registry/RegistryAdmin.sol +374 -0
- package/contracts/registry/RegistryService.sol +114 -185
- package/contracts/registry/RegistryServiceManager.sol +24 -33
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +263 -58
- package/contracts/shared/Component.sol +268 -0
- package/contracts/shared/ComponentService.sol +641 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/IComponent.sol +70 -0
- package/contracts/shared/IComponentService.sol +108 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +13 -12
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +15 -6
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InitializableERC165.sol +27 -0
- package/contracts/shared/InstanceLinkedComponent.sol +172 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +59 -86
- package/contracts/shared/PolicyHolder.sol +99 -0
- package/contracts/shared/Registerable.sol +26 -41
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +57 -33
- package/contracts/shared/TokenHandler.sol +122 -10
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +167 -0
- package/contracts/staking/IStakingService.sol +160 -0
- package/contracts/staking/StakeManagerLib.sol +206 -0
- package/contracts/staking/Staking.sol +497 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +50 -0
- package/contracts/staking/StakingReader.sol +183 -0
- package/contracts/staking/StakingService.sol +407 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +135 -0
- package/contracts/{types → type}/Blocknumber.sol +27 -3
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +33 -23
- package/contracts/{types → type}/NftId.sol +21 -15
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +271 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +6 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +174 -0
- package/contracts/type/Seconds.sol +93 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +34 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +34 -15
- package/contracts/{types → type}/UFixed.sol +35 -9
- package/contracts/{types → type}/Version.sol +5 -2
- package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
- package/contracts/upgradeability/ProxyManager.sol +198 -0
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/upgradeability/Versionable.sol +59 -0
- package/package.json +10 -7
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1047
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -945
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -432
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -814
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -693
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -420
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -466
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -993
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -464
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -420
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -546
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
- package/contracts/components/BaseComponent.sol +0 -159
- package/contracts/components/Distribution.sol +0 -163
- package/contracts/components/IBaseComponent.sol +0 -34
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -66
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -271
- package/contracts/components/Product.sol +0 -292
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
- package/contracts/instance/IInstanceBase.sol +0 -26
- package/contracts/instance/InstanceAccessManager.sol +0 -303
- package/contracts/instance/InstanceBase.sol +0 -41
- package/contracts/instance/base/ComponentServiceBase.sol +0 -82
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/base/Lifecycle.sol +0 -100
- package/contracts/instance/module/ISetup.sol +0 -46
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/BundleService.sol +0 -260
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ComponentOwnerService.sol +0 -315
- package/contracts/instance/service/DistributionService.sol +0 -113
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -45
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPolicyService.sol +0 -87
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -503
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -124
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -170
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -210
- package/contracts/registry/ReleaseManager.sol +0 -348
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/ERC165.sol +0 -25
- package/contracts/shared/ProxyManager.sol +0 -94
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- package/contracts/shared/Versionable.sol +0 -147
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -152
- package/contracts/types/RoleId.sol +0 -90
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,16 +1,21 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
4
6
|
|
5
|
-
import {
|
6
|
-
import {VersionPart} from "../types/Version.sol";
|
7
|
-
import {ObjectType, PROTOCOL, REGISTRY, TOKEN, SERVICE, INSTANCE, STAKE, PRODUCT, DISTRIBUTION, ORACLE, POOL, POLICY, BUNDLE} from "../types/ObjectType.sol";
|
7
|
+
import {InitializableCustom} from "../shared/InitializableCustom.sol";
|
8
8
|
|
9
|
-
import {
|
9
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
10
|
+
import {VersionPart} from "../type/Version.sol";
|
11
|
+
import {ObjectType, PROTOCOL, REGISTRY, SERVICE, INSTANCE, STAKE, STAKING, PRODUCT, DISTRIBUTION, DISTRIBUTOR, ORACLE, POOL, POLICY, BUNDLE} from "../type/ObjectType.sol";
|
10
12
|
|
11
13
|
import {ChainNft} from "./ChainNft.sol";
|
12
14
|
import {IRegistry} from "./IRegistry.sol";
|
13
|
-
import {
|
15
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
16
|
+
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
17
|
+
import {TokenRegistry} from "./TokenRegistry.sol";
|
18
|
+
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
14
19
|
|
15
20
|
// IMPORTANT
|
16
21
|
// Each NFT minted by registry is accosiated with:
|
@@ -22,128 +27,215 @@ import {ReleaseManager} from "./ReleaseManager.sol";
|
|
22
27
|
// 3) IRegisterable address by regular service (INSTANCE, PRODUCT, POOL, DISTRIBUTION, ORACLE)
|
23
28
|
// 4) state object by regular service (POLICY, BUNDLE, STAKE)
|
24
29
|
|
30
|
+
/// @title Chain Registry contract implementing IRegistry.
|
31
|
+
/// @notice See IRegistry for method details.
|
25
32
|
contract Registry is
|
26
|
-
|
33
|
+
InitializableCustom,
|
27
34
|
IRegistry
|
28
35
|
{
|
29
|
-
address public
|
36
|
+
address public NFT_LOCK_ADDRESS = address(0x1);
|
30
37
|
uint256 public constant REGISTRY_TOKEN_SEQUENCE_ID = 2;
|
38
|
+
uint256 public constant STAKING_TOKEN_SEQUENCE_ID = 3;
|
31
39
|
string public constant EMPTY_URI = "";
|
32
40
|
|
33
|
-
mapping(NftId nftId => ObjectInfo info)
|
34
|
-
mapping(address object => NftId nftId)
|
41
|
+
mapping(NftId nftId => ObjectInfo info) private _info;
|
42
|
+
mapping(address object => NftId nftId) private _nftIdByAddress;
|
35
43
|
|
36
|
-
mapping(VersionPart version => mapping(ObjectType serviceDomain => address)) _service;
|
44
|
+
mapping(VersionPart version => mapping(ObjectType serviceDomain => address)) private _service;
|
45
|
+
|
46
|
+
mapping(ObjectType objectType => bool) private _coreTypes;
|
37
47
|
|
38
48
|
mapping(ObjectType objectType => mapping(
|
39
|
-
ObjectType parentType => bool))
|
49
|
+
ObjectType parentType => bool)) private _coreContractCombinations;
|
40
50
|
|
41
51
|
mapping(ObjectType objectType => mapping(
|
42
|
-
ObjectType parentType => bool))
|
52
|
+
ObjectType parentType => bool)) private _coreObjectCombinations;
|
53
|
+
|
54
|
+
RegistryAdmin public immutable _admin;
|
55
|
+
ChainNft public immutable _chainNft;
|
43
56
|
|
44
|
-
NftId
|
45
|
-
|
57
|
+
NftId public immutable _protocolNftId;
|
58
|
+
NftId public immutable _registryNftId;
|
59
|
+
NftId public _stakingNftId;
|
46
60
|
|
47
|
-
|
61
|
+
address public _tokenRegistryAddress;
|
62
|
+
address public _stakingAddress;
|
63
|
+
ReleaseRegistry public _releaseRegistry;
|
48
64
|
|
65
|
+
// TODO
|
66
|
+
// 1). Registry and ReleaseRegistry must be treated as whole single entity.
|
67
|
+
// But current limitations of EVM does not allow it -> require it to be splitted
|
68
|
+
// 2). Keep onlyReleaseRegistry modifier
|
69
|
+
// 3). Delete onlyRegistryService in favor of restricted
|
70
|
+
// 4). (For GlobalRegistry ONLY) make registerChainRegistry() restricted to GIF_ADMIN_ROLE
|
49
71
|
modifier onlyRegistryService() {
|
50
|
-
if(!
|
51
|
-
revert
|
72
|
+
if(!_releaseRegistry.isActiveRegistryService(msg.sender)) {
|
73
|
+
revert ErrorRegistryCallerNotRegistryService();
|
52
74
|
}
|
53
75
|
_;
|
54
76
|
}
|
55
77
|
|
56
|
-
|
57
|
-
|
58
|
-
|
78
|
+
|
79
|
+
modifier onlyReleaseRegistry() {
|
80
|
+
if(msg.sender != address(_releaseRegistry)) {
|
81
|
+
revert ErrorRegistryCallerNotReleaseRegistry();
|
59
82
|
}
|
60
83
|
_;
|
61
84
|
}
|
62
85
|
|
63
|
-
|
86
|
+
/// @dev Creates the registry contract and populates it with the protocol and registry objects.
|
87
|
+
/// Internally deploys the ChainNft contract.
|
88
|
+
constructor(RegistryAdmin admin)
|
89
|
+
InitializableCustom()
|
64
90
|
{
|
65
|
-
|
66
|
-
|
91
|
+
_admin = admin;
|
67
92
|
// deploy NFT
|
68
|
-
_chainNft = new ChainNft(address(this))
|
93
|
+
_chainNft = new ChainNft(address(this));
|
69
94
|
|
70
95
|
// initial registry setup
|
71
|
-
_registerProtocol();
|
72
|
-
_registerRegistry();
|
96
|
+
_protocolNftId = _registerProtocol();
|
97
|
+
_registryNftId = _registerRegistry();
|
98
|
+
|
99
|
+
// set object types and object parent relations
|
100
|
+
_setupValidCoreTypesAndCombinations();
|
101
|
+
}
|
73
102
|
|
74
|
-
// set object parent relations
|
75
|
-
_setupValidObjectParentCombinations();
|
76
103
|
|
77
|
-
|
104
|
+
/// @dev Wires release registry and token to registry (this contract).
|
105
|
+
/// MUST be called by release registry.
|
106
|
+
function initialize(
|
107
|
+
address releaseRegistry,
|
108
|
+
address tokenRegistry,
|
109
|
+
address staking
|
110
|
+
)
|
111
|
+
external
|
112
|
+
initializer()
|
113
|
+
{
|
114
|
+
_releaseRegistry = ReleaseRegistry(releaseRegistry);
|
115
|
+
_tokenRegistryAddress = tokenRegistry;
|
116
|
+
_stakingAddress = staking;
|
117
|
+
|
118
|
+
_stakingNftId = _registerStaking();
|
78
119
|
}
|
79
120
|
|
121
|
+
/// @inheritdoc IRegistry
|
122
|
+
function register(ObjectInfo memory info)
|
123
|
+
external
|
124
|
+
onlyRegistryService
|
125
|
+
returns(NftId nftId)
|
126
|
+
{
|
127
|
+
ObjectType objectType = info.objectType;
|
128
|
+
ObjectType parentType = _info[info.parentNftId].objectType;
|
129
|
+
|
130
|
+
// check type combinations for core objects
|
131
|
+
if(info.objectAddress == address(0)) {
|
132
|
+
if(_coreObjectCombinations[objectType][parentType] == false) {
|
133
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
134
|
+
}
|
135
|
+
}
|
136
|
+
// check type combinations for contract objects
|
137
|
+
else {
|
138
|
+
if(_coreContractCombinations[objectType][parentType] == false) {
|
139
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
140
|
+
}
|
141
|
+
}
|
142
|
+
|
143
|
+
nftId = _register(info);
|
144
|
+
}
|
145
|
+
|
146
|
+
|
147
|
+
/// @inheritdoc IRegistry
|
80
148
|
function registerService(
|
81
149
|
ObjectInfo memory info,
|
82
150
|
VersionPart version,
|
83
151
|
ObjectType domain
|
84
152
|
)
|
85
153
|
external
|
86
|
-
|
154
|
+
onlyReleaseRegistry
|
87
155
|
returns(NftId nftId)
|
88
156
|
{
|
89
|
-
|
90
|
-
|
91
|
-
|
157
|
+
// check service address is defined
|
158
|
+
address service = info.objectAddress;
|
159
|
+
if(service == address(0)) {
|
160
|
+
revert ErrorRegistryServiceAddressZero();
|
161
|
+
}
|
162
|
+
|
163
|
+
// check version is defined
|
164
|
+
if(version.eqz()) {
|
165
|
+
revert ErrorRegistryServiceVersionZero();
|
92
166
|
}
|
93
|
-
info.initialOwner = NFT_LOCK_ADDRESS <- if services are access managed
|
94
|
-
*/
|
95
167
|
|
96
|
-
|
97
|
-
|
168
|
+
// check domain is defined
|
169
|
+
if(domain.eqz()) {
|
170
|
+
revert ErrorRegistryDomainZero(service);
|
171
|
+
}
|
172
|
+
|
173
|
+
// check contract has not already been registered
|
174
|
+
if(_service[version][domain] != address(0)) {
|
175
|
+
revert ErrorRegistryDomainAlreadyRegistered(service, version, domain);
|
176
|
+
}
|
177
|
+
|
178
|
+
// check service has proper type
|
179
|
+
if(info.objectType != SERVICE()) {
|
180
|
+
revert ErrorRegistryNotService(service, info.objectType);
|
98
181
|
}
|
99
182
|
|
100
|
-
|
183
|
+
// check that parent has registry type
|
184
|
+
if(info.parentNftId != _registryNftId) {
|
185
|
+
revert ErrorRegistryServiceParentNotRegistry(info.parentNftId);
|
186
|
+
}
|
101
187
|
|
188
|
+
_service[version][domain] = service;
|
102
189
|
nftId = _register(info);
|
103
190
|
|
104
191
|
emit LogServiceRegistration(version, domain);
|
105
192
|
}
|
106
193
|
|
107
|
-
|
194
|
+
|
195
|
+
/// @inheritdoc IRegistry
|
196
|
+
function registerWithCustomType(ObjectInfo memory info)
|
108
197
|
external
|
109
198
|
onlyRegistryService
|
110
199
|
returns(NftId nftId)
|
111
200
|
{
|
112
|
-
|
113
|
-
|
114
|
-
|
201
|
+
ObjectType objectType = info.objectType;
|
202
|
+
ObjectType parentType = _info[info.parentNftId].objectType;
|
203
|
+
|
204
|
+
if(_coreTypes[objectType]) {
|
205
|
+
revert ErrorRegistryCoreTypeRegistration();
|
115
206
|
}
|
116
207
|
|
117
|
-
|
208
|
+
if(
|
209
|
+
parentType == PROTOCOL() ||
|
210
|
+
parentType == SERVICE()
|
211
|
+
) {
|
212
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
213
|
+
}
|
214
|
+
|
215
|
+
_register(info);
|
118
216
|
}
|
119
217
|
|
218
|
+
|
120
219
|
/// @dev earliest GIF major version
|
121
|
-
function
|
122
|
-
return
|
220
|
+
function getInitialVersion() external view returns (VersionPart) {
|
221
|
+
return _releaseRegistry.getInitialVersion();
|
123
222
|
}
|
124
223
|
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
// likely setting up a new gif version does not fit into a single tx
|
129
|
-
// in this case we might want to have a period where the latest version is
|
130
|
-
// in the process of being set up while the latest active version is 1 major release smaller
|
131
|
-
/// @dev latest GIF major version (might not yet be active)
|
132
|
-
function getMajorVersionMax() external view returns (VersionPart) {
|
133
|
-
return _releaseManager.getNextVersion();
|
224
|
+
/// @dev next GIF release version to be released
|
225
|
+
function getNextVersion() external view returns (VersionPart) {
|
226
|
+
return _releaseRegistry.getNextVersion();
|
134
227
|
}
|
135
228
|
|
136
229
|
/// @dev latest active GIF release version
|
137
|
-
function
|
138
|
-
return
|
230
|
+
function getLatestVersion() external view returns (VersionPart) {
|
231
|
+
return _releaseRegistry.getLatestVersion();
|
139
232
|
}
|
140
233
|
|
141
|
-
function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory)
|
142
|
-
|
143
|
-
return _releaseManager.getReleaseInfo(version);
|
234
|
+
function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory) {
|
235
|
+
return _releaseRegistry.getReleaseInfo(version);
|
144
236
|
}
|
145
237
|
|
146
|
-
function getObjectCount() external view
|
238
|
+
function getObjectCount() external view returns (uint256) {
|
147
239
|
return _chainNft.totalSupply();
|
148
240
|
}
|
149
241
|
|
@@ -151,11 +243,15 @@ contract Registry is
|
|
151
243
|
return _registryNftId;
|
152
244
|
}
|
153
245
|
|
154
|
-
function
|
246
|
+
function getProtocolNftId() external view returns (NftId nftId) {
|
247
|
+
return _protocolNftId;
|
248
|
+
}
|
249
|
+
|
250
|
+
function getNftId(address object) external view returns (NftId id) {
|
155
251
|
return _nftIdByAddress[object];
|
156
252
|
}
|
157
253
|
|
158
|
-
function ownerOf(NftId nftId) public view
|
254
|
+
function ownerOf(NftId nftId) public view returns (address) {
|
159
255
|
return _chainNft.ownerOf(nftId.toInt());
|
160
256
|
}
|
161
257
|
|
@@ -163,116 +259,162 @@ contract Registry is
|
|
163
259
|
return _chainNft.ownerOf(_nftIdByAddress[contractAddress].toInt());
|
164
260
|
}
|
165
261
|
|
166
|
-
function getObjectInfo(NftId nftId) external view
|
262
|
+
function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory) {
|
167
263
|
return _info[nftId];
|
168
264
|
}
|
169
265
|
|
170
|
-
function getObjectInfo(address object) external view
|
266
|
+
function getObjectInfo(address object) external view returns (ObjectInfo memory) {
|
171
267
|
return _info[_nftIdByAddress[object]];
|
172
268
|
}
|
173
269
|
|
174
|
-
function isRegistered(NftId nftId) public view
|
270
|
+
function isRegistered(NftId nftId) public view returns (bool) {
|
175
271
|
return _info[nftId].objectType.gtz();
|
176
272
|
}
|
177
273
|
|
178
|
-
function isRegistered(address object) external view
|
274
|
+
function isRegistered(address object) external view returns (bool) {
|
179
275
|
return _nftIdByAddress[object].gtz();
|
180
276
|
}
|
181
277
|
|
182
|
-
function isRegisteredService(address object) external view
|
183
|
-
return
|
278
|
+
function isRegisteredService(address object) external view returns (bool) {
|
279
|
+
return _info[_nftIdByAddress[object]].objectType == SERVICE();
|
280
|
+
}
|
281
|
+
|
282
|
+
function isRegisteredComponent(address object) external view returns (bool) {
|
283
|
+
NftId objectParentNftId = _info[_nftIdByAddress[object]].parentNftId;
|
284
|
+
return _info[objectParentNftId].objectType == INSTANCE();
|
285
|
+
}
|
286
|
+
|
287
|
+
function isActiveRelease(VersionPart version) external view returns (bool)
|
288
|
+
{
|
289
|
+
return _releaseRegistry.isActiveRelease(version);
|
290
|
+
}
|
291
|
+
|
292
|
+
function getStakingAddress() external view returns (address staking) {
|
293
|
+
//return getObjectInfo(_stakingNftId).objectAddress;
|
294
|
+
//return _info[_stakingNftId].objectAddress;
|
295
|
+
return _stakingAddress;
|
296
|
+
}
|
297
|
+
|
298
|
+
function getTokenRegistryAddress() external view returns (address tokenRegistry) {
|
299
|
+
return _tokenRegistryAddress;
|
184
300
|
}
|
185
301
|
|
186
302
|
function getServiceAddress(
|
187
303
|
ObjectType serviceDomain,
|
188
304
|
VersionPart releaseVersion
|
189
|
-
) external view returns (address)
|
305
|
+
) external view returns (address service)
|
190
306
|
{
|
191
|
-
|
307
|
+
service = _service[releaseVersion][serviceDomain];
|
192
308
|
}
|
193
309
|
|
194
|
-
function
|
195
|
-
return
|
310
|
+
function getReleaseRegistryAddress() external view returns (address) {
|
311
|
+
return address(_releaseRegistry);
|
312
|
+
}
|
313
|
+
|
314
|
+
function getChainNftAddress() external view override returns (address) {
|
315
|
+
return address(_chainNft);
|
316
|
+
}
|
317
|
+
|
318
|
+
function getRegistryAdminAddress() external view returns (address) {
|
319
|
+
return address(_admin);
|
320
|
+
}
|
321
|
+
|
322
|
+
function getAuthority() external view returns (address) {
|
323
|
+
return _admin.authority();
|
196
324
|
}
|
197
325
|
|
198
326
|
function getOwner() public view returns (address owner) {
|
199
327
|
return ownerOf(address(this));
|
200
328
|
}
|
201
329
|
|
330
|
+
// IERC165
|
331
|
+
|
332
|
+
function supportsInterface(bytes4 interfaceId) external pure returns (bool) {
|
333
|
+
if(interfaceId == type(IERC165).interfaceId || interfaceId == type(IRegistry).interfaceId) {
|
334
|
+
return true;
|
335
|
+
}
|
336
|
+
|
337
|
+
return false;
|
338
|
+
}
|
339
|
+
|
202
340
|
// Internals
|
203
341
|
|
204
342
|
/// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
|
205
|
-
// TODO registration of precompile addresses
|
206
343
|
function _register(ObjectInfo memory info)
|
207
344
|
internal
|
208
345
|
returns(NftId nftId)
|
209
346
|
{
|
210
347
|
ObjectType objectType = info.objectType;
|
348
|
+
bool isInterceptor = info.isInterceptor;
|
349
|
+
address objectAddress = info.objectAddress;
|
350
|
+
address owner = info.initialOwner;
|
351
|
+
|
211
352
|
NftId parentNftId = info.parentNftId;
|
212
353
|
ObjectInfo memory parentInfo = _info[parentNftId];
|
213
354
|
ObjectType parentType = parentInfo.objectType; // see function header
|
214
355
|
address parentAddress = parentInfo.objectAddress;
|
215
356
|
|
216
357
|
// parent is contract -> need to check? -> check before minting
|
358
|
+
// special case: staking: to protocol possible as well
|
217
359
|
// special case: global registry nft as parent when not on mainnet -> global registry address is 0
|
218
360
|
// special case: when parentNftId == _chainNft.mint(), check for zero parent address before mint
|
219
361
|
// special case: when parentNftId == _chainNft.mint() && objectAddress == initialOwner
|
220
|
-
if(
|
221
|
-
|
362
|
+
if(objectType != STAKE()) {
|
363
|
+
if(parentAddress == address(0)) {
|
364
|
+
revert ErrorRegistryParentAddressZero();
|
365
|
+
}
|
222
366
|
}
|
223
367
|
|
224
|
-
address
|
368
|
+
address interceptorAddress = _getInterceptor(
|
369
|
+
isInterceptor,
|
370
|
+
objectType,
|
371
|
+
objectAddress,
|
372
|
+
parentInfo.isInterceptor,
|
373
|
+
parentAddress);
|
225
374
|
|
226
|
-
|
227
|
-
|
228
|
-
uint256 mintedTokenId = _chainNft.mint(
|
229
|
-
info.initialOwner,
|
230
|
-
interceptor,
|
231
|
-
EMPTY_URI);
|
232
|
-
nftId = toNftId(mintedTokenId);
|
233
|
-
|
234
|
-
// TODO move nftId out of info struct
|
235
|
-
// getters by nftId -> return struct without nftId
|
236
|
-
// getters by address -> return nftId AND struct
|
375
|
+
uint256 tokenId = _chainNft.getNextTokenId();
|
376
|
+
nftId = NftIdLib.toNftId(tokenId);
|
237
377
|
info.nftId = nftId;
|
238
378
|
_info[nftId] = info;
|
239
379
|
|
240
|
-
if(
|
241
|
-
|
242
|
-
|
243
|
-
if(_isValidContractCombination[objectType][parentType] == false) {
|
244
|
-
revert InvalidTypesCombination(objectType, parentType);
|
380
|
+
if(objectAddress > address(0)) {
|
381
|
+
if(_nftIdByAddress[objectAddress].gtz()) {
|
382
|
+
revert ErrorRegistryContractAlreadyRegistered(objectAddress);
|
245
383
|
}
|
246
384
|
|
247
|
-
|
385
|
+
_nftIdByAddress[objectAddress] = nftId;
|
386
|
+
}
|
248
387
|
|
249
|
-
|
250
|
-
revert ContractAlreadyRegistered(contractAddress);
|
251
|
-
}
|
388
|
+
emit LogRegistration(nftId, parentNftId, objectType, isInterceptor, objectAddress, owner);
|
252
389
|
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
revert InvalidTypesCombination(objectType, parentType);
|
259
|
-
}
|
260
|
-
}
|
390
|
+
// calls nft receiver(1) and interceptor(2)
|
391
|
+
uint256 mintedTokenId = _chainNft.mint(
|
392
|
+
owner,
|
393
|
+
interceptorAddress,
|
394
|
+
EMPTY_URI);
|
261
395
|
|
262
|
-
|
396
|
+
assert(mintedTokenId == tokenId);
|
263
397
|
}
|
264
398
|
|
265
399
|
/// @dev obtain interceptor address for this nft if applicable, address(0) otherwise
|
400
|
+
/// special case: STAKES (parent may be any type) -> no intercept call
|
401
|
+
/// default case:
|
266
402
|
function _getInterceptor(
|
267
403
|
bool isInterceptor,
|
404
|
+
ObjectType objectType,
|
268
405
|
address objectAddress,
|
269
406
|
bool parentIsInterceptor,
|
270
407
|
address parentObjectAddress
|
271
408
|
)
|
272
409
|
internal
|
273
|
-
|
410
|
+
pure
|
274
411
|
returns (address interceptor)
|
275
412
|
{
|
413
|
+
// no intercepting calls for stakes
|
414
|
+
if (objectType == STAKE()) {
|
415
|
+
return address(0);
|
416
|
+
}
|
417
|
+
|
276
418
|
if (objectAddress == address(0)) {
|
277
419
|
if (parentIsInterceptor) {
|
278
420
|
return parentObjectAddress;
|
@@ -293,13 +435,14 @@ contract Registry is
|
|
293
435
|
/// @dev protocol registration used to anchor the dip ecosystem relations
|
294
436
|
function _registerProtocol()
|
295
437
|
private
|
438
|
+
returns (NftId protocolNftId)
|
296
439
|
{
|
297
440
|
uint256 protocolId = _chainNft.PROTOCOL_NFT_ID();
|
298
|
-
|
441
|
+
protocolNftId = NftIdLib.toNftId(protocolId);
|
299
442
|
|
300
443
|
_info[protocolNftId] = ObjectInfo({
|
301
444
|
nftId: protocolNftId,
|
302
|
-
parentNftId:
|
445
|
+
parentNftId: NftIdLib.zero(),
|
303
446
|
objectType: PROTOCOL(),
|
304
447
|
isInterceptor: false,
|
305
448
|
objectAddress: address(0),
|
@@ -314,19 +457,20 @@ contract Registry is
|
|
314
457
|
/// might also register the global registry when not on mainnet
|
315
458
|
function _registerRegistry()
|
316
459
|
private
|
460
|
+
returns (NftId registryNftId)
|
317
461
|
{
|
318
462
|
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
319
|
-
|
463
|
+
registryNftId = NftIdLib.toNftId(registryId);
|
320
464
|
NftId parentNftId;
|
321
465
|
|
322
466
|
if(registryId != _chainNft.GLOBAL_REGISTRY_ID())
|
323
467
|
{// we're not the global registry
|
324
468
|
_registerGlobalRegistry();
|
325
|
-
parentNftId = toNftId(_chainNft.GLOBAL_REGISTRY_ID());
|
469
|
+
parentNftId = NftIdLib.toNftId(_chainNft.GLOBAL_REGISTRY_ID());
|
326
470
|
}
|
327
471
|
else
|
328
472
|
{// we are global registry
|
329
|
-
parentNftId =
|
473
|
+
parentNftId = _protocolNftId;
|
330
474
|
}
|
331
475
|
|
332
476
|
_info[registryNftId] = ObjectInfo({
|
@@ -338,9 +482,8 @@ contract Registry is
|
|
338
482
|
initialOwner: NFT_LOCK_ADDRESS,
|
339
483
|
data: ""
|
340
484
|
});
|
341
|
-
_nftIdByAddress[address(this)] = registryNftId;
|
342
|
-
_registryNftId = registryNftId;
|
343
485
|
|
486
|
+
_nftIdByAddress[address(this)] = registryNftId;
|
344
487
|
_chainNft.mint(NFT_LOCK_ADDRESS, registryId);
|
345
488
|
}
|
346
489
|
|
@@ -349,11 +492,11 @@ contract Registry is
|
|
349
492
|
private
|
350
493
|
{
|
351
494
|
uint256 globalRegistryId = _chainNft.GLOBAL_REGISTRY_ID();
|
352
|
-
NftId globalRegistryNftId = toNftId(globalRegistryId);
|
495
|
+
NftId globalRegistryNftId = NftIdLib.toNftId(globalRegistryId);
|
353
496
|
|
354
497
|
_info[globalRegistryNftId] = ObjectInfo({
|
355
498
|
nftId: globalRegistryNftId,
|
356
|
-
parentNftId: toNftId(_chainNft.PROTOCOL_NFT_ID()),
|
499
|
+
parentNftId: NftIdLib.toNftId(_chainNft.PROTOCOL_NFT_ID()),
|
357
500
|
objectType: REGISTRY(),
|
358
501
|
isInterceptor: false,
|
359
502
|
objectAddress: address(0),
|
@@ -363,34 +506,71 @@ contract Registry is
|
|
363
506
|
|
364
507
|
_chainNft.mint(NFT_LOCK_ADDRESS, globalRegistryId);
|
365
508
|
}
|
509
|
+
// depends on _registryNftId and _stakingAddress
|
510
|
+
function _registerStaking()
|
511
|
+
private
|
512
|
+
returns (NftId stakingNftId)
|
513
|
+
{
|
514
|
+
address stakingOwner = IRegisterable(_stakingAddress).getOwner();
|
515
|
+
uint256 stakingId = _chainNft.calculateTokenId(STAKING_TOKEN_SEQUENCE_ID);
|
516
|
+
stakingNftId = NftIdLib.toNftId(stakingId);
|
517
|
+
|
518
|
+
_info[stakingNftId] = ObjectInfo({
|
519
|
+
nftId: stakingNftId,
|
520
|
+
parentNftId: _registryNftId,
|
521
|
+
objectType: STAKING(),
|
522
|
+
isInterceptor: false,
|
523
|
+
objectAddress: _stakingAddress,
|
524
|
+
initialOwner: stakingOwner,
|
525
|
+
data: ""
|
526
|
+
});
|
527
|
+
|
528
|
+
_nftIdByAddress[_stakingAddress] = stakingNftId;
|
529
|
+
|
530
|
+
// reverts if nftId was already minted
|
531
|
+
_chainNft.mint(stakingOwner, stakingId);
|
532
|
+
}
|
366
533
|
|
367
534
|
/// @dev defines which object - parent types relations are allowed to register
|
368
|
-
|
369
|
-
|
370
|
-
// 2) DO NOT use object type (e.g. POLCY, BUNDLE, STAKE) as parent type
|
371
|
-
// 3) DO NOT use REGISTRY as object type
|
372
|
-
// 2) DO NOT use PROTOCOL and "zeroObjectType"
|
373
|
-
function _setupValidObjectParentCombinations()
|
535
|
+
/// EACH object type MUST have only one parent type across ALL mappings
|
536
|
+
function _setupValidCoreTypesAndCombinations()
|
374
537
|
private
|
375
538
|
{
|
376
|
-
|
377
|
-
|
378
|
-
|
539
|
+
_coreTypes[REGISTRY()] = true;
|
540
|
+
_coreTypes[SERVICE()] = true;
|
541
|
+
_coreTypes[INSTANCE()] = true;
|
542
|
+
_coreTypes[PRODUCT()] = true;
|
543
|
+
_coreTypes[POOL()] = true;
|
544
|
+
_coreTypes[DISTRIBUTION()] = true;
|
545
|
+
_coreTypes[DISTRIBUTOR()] = true;
|
546
|
+
_coreTypes[ORACLE()] = true;
|
547
|
+
_coreTypes[POLICY()] = true;
|
548
|
+
_coreTypes[BUNDLE()] = true;
|
549
|
+
_coreTypes[STAKING()] = true;
|
550
|
+
_coreTypes[STAKE()] = true;
|
551
|
+
|
552
|
+
// only global registry allowed to register registry (after initialization)
|
553
|
+
if(block.chainid == 1) {
|
554
|
+
_coreContractCombinations[REGISTRY()][REGISTRY()] = true;
|
555
|
+
}
|
379
556
|
|
380
|
-
// registry
|
381
|
-
|
557
|
+
// contracts with registry parent
|
558
|
+
_coreContractCombinations[STAKING()][REGISTRY()] = true; // only for chain staking contract
|
559
|
+
_coreContractCombinations[INSTANCE()][REGISTRY()] = true;
|
382
560
|
|
383
|
-
// instance
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
561
|
+
// components with instance parent
|
562
|
+
_coreContractCombinations[PRODUCT()][INSTANCE()] = true;
|
563
|
+
_coreContractCombinations[DISTRIBUTION()][INSTANCE()] = true;
|
564
|
+
_coreContractCombinations[ORACLE()][INSTANCE()] = true;
|
565
|
+
_coreContractCombinations[POOL()][INSTANCE()] = true;
|
388
566
|
|
389
|
-
//
|
390
|
-
|
567
|
+
// objects with coponent parents
|
568
|
+
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
569
|
+
_coreObjectCombinations[POLICY()][PRODUCT()] = true;
|
570
|
+
_coreObjectCombinations[BUNDLE()][POOL()] = true;
|
391
571
|
|
392
|
-
//
|
393
|
-
|
394
|
-
|
572
|
+
// staking
|
573
|
+
_coreObjectCombinations[STAKE()][PROTOCOL()] = true;
|
574
|
+
_coreObjectCombinations[STAKE()][INSTANCE()] = true;
|
395
575
|
}
|
396
|
-
}
|
576
|
+
}
|