@etherisc/gif-next 0.0.2-fd275d2-234 → 0.0.2-fd41099-706
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 +60 -17
- 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/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +499 -549
- 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 +1505 -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 +1191 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1394 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +900 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +843 -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 +274 -1320
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +444 -172
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +389 -3093
- 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 +662 -349
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +587 -397
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +349 -127
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3591 -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 +30 -112
- 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 +1155 -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/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -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 +1477 -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 +1134 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +300 -357
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +959 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -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 +1315 -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/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +236 -190
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -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} +253 -373
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +966 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → product/IProductService.sol/IProductService.json} +124 -166
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -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 +1257 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +53 -16
- package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.json +1474 -0
- package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.json +1876 -0
- package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.json +974 -0
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +370 -116
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +290 -297
- 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 +672 -166
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1853 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +477 -318
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +337 -133
- 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 +1140 -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 +351 -100
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -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} +208 -209
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
- 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 +97 -172
- 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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- 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/MainnetContract.sol/MainnetContract.dbg.json +4 -0
- package/artifacts/contracts/shared/MainnetContract.sol/MainnetContract.json +34 -0
- 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 +201 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -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 +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -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 +2237 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -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 +345 -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 +312 -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 +198 -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 +293 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -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 +590 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -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 +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/distribution/Distribution.sol +283 -0
- package/contracts/distribution/DistributionService.sol +288 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +48 -0
- package/contracts/distribution/IDistributionService.sol +85 -0
- package/contracts/instance/BundleSet.sol +126 -0
- package/contracts/instance/IInstance.sol +68 -38
- package/contracts/instance/IInstanceService.sol +78 -18
- package/contracts/instance/Instance.sol +181 -381
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +173 -83
- package/contracts/instance/InstanceService.sol +388 -177
- package/contracts/instance/InstanceServiceManager.sol +13 -30
- package/contracts/instance/InstanceStore.sol +276 -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 +106 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +21 -37
- package/contracts/instance/module/IAccess.sol +29 -21
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +52 -0
- package/contracts/instance/module/IDistribution.sol +7 -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} +5 -5
- 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 +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +157 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +284 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +106 -0
- package/contracts/pool/IPoolComponent.sol +52 -0
- package/contracts/pool/IPoolService.sol +150 -0
- package/contracts/pool/Pool.sol +311 -0
- package/contracts/pool/PoolService.sol +436 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +230 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +416 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/product/IPolicyService.sol +78 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +39 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +475 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +300 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +392 -0
- package/contracts/product/ProductService.sol +99 -0
- package/contracts/product/ProductServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +51 -22
- package/contracts/registry/GlobalRegistry.sol +104 -0
- package/contracts/registry/GlobalRegistryAdmin.sol +38 -0
- package/contracts/registry/IGlobalRegistry.sol +17 -0
- package/contracts/registry/IRegistry.sol +84 -32
- package/contracts/registry/IRegistryService.sol +47 -28
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +386 -269
- package/contracts/registry/RegistryAdmin.sol +445 -0
- package/contracts/registry/RegistryService.sol +111 -217
- package/contracts/registry/RegistryServiceManager.sol +26 -53
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +533 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -57
- package/contracts/shared/Component.sol +281 -0
- package/contracts/shared/ComponentService.sol +581 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +15 -13
- package/contracts/shared/IComponent.sol +70 -0
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +50 -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 +16 -6
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +151 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/MainnetContract.sol +15 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +59 -86
- package/contracts/shared/PolicyHolder.sol +102 -0
- package/contracts/shared/Registerable.sol +26 -41
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +58 -31
- package/contracts/shared/TokenHandler.sol +37 -6
- package/contracts/staking/IStaking.sol +167 -0
- package/contracts/staking/IStakingService.sol +160 -0
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +510 -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 +411 -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 +128 -0
- package/contracts/{types → type}/Blocknumber.sol +21 -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 +5 -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 +81 -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 +23 -14
- package/contracts/{types → type}/UFixed.sol +7 -0
- 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/BaseComponent.sol/BaseComponent.json +0 -327
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
- 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 -249
- 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/Pool.sol/Pool.json +0 -787
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -729
- 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/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +0 -101
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -809
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -272
- 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/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- 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/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -971
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -460
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1147
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -488
- 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/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/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 -91
- package/contracts/components/Distribution.sol +0 -163
- package/contracts/components/IBaseComponent.sol +0 -25
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -62
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -247
- package/contracts/components/Product.sol +0 -289
- 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/AccessManagedSimple.sol +0 -115
- package/contracts/instance/AccessManagerSimple.sol +0 -692
- package/contracts/instance/BundleManager.sol +0 -152
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/InstanceAccessManager.sol +0 -288
- package/contracts/instance/base/ComponentServiceBase.sol +0 -134
- 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/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/DistributionService.sol +0 -88
- package/contracts/instance/service/DistributionServiceManager.sol +0 -54
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPoolService.sol +0 -43
- package/contracts/instance/service/IProductService.sol +0 -110
- package/contracts/instance/service/PoolService.sol +0 -206
- package/contracts/instance/service/PoolServiceManager.sol +0 -54
- package/contracts/instance/service/ProductService.sol +0 -561
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- 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 -24
- 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,202 +1,243 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {
|
4
|
+
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
|
+
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
7
|
+
import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
|
8
|
+
|
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";
|
6
12
|
|
7
13
|
import {ChainNft} from "./ChainNft.sol";
|
8
14
|
import {IRegistry} from "./IRegistry.sol";
|
9
|
-
import {
|
10
|
-
import {
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
|
14
|
-
import {ERC165} from "../shared/ERC165.sol";
|
15
|
-
|
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";
|
16
19
|
|
17
|
-
|
20
|
+
/// @dev IMPORTANT
|
18
21
|
// Each NFT minted by registry is accosiated with:
|
19
22
|
// 1) NFT owner
|
20
23
|
// 2) registred contract OR object stored in registered (parent) contract
|
21
|
-
//
|
22
|
-
// 1)
|
23
|
-
// 2) IRegisterable address by
|
24
|
-
// 3)
|
25
|
-
// 4) state object by approved service (POLICY, BUNDLE, STAKE)
|
24
|
+
// Three registration flows:
|
25
|
+
// 1) registerService() -> registers IService address by ReleaseRegistry (ReleaseRegistry is set at deployment time)
|
26
|
+
// 2) register() -> registers IRegisterable address by IService (INSTANCE, PRODUCT, POOL, DISTRIBUTION, ORACLE)
|
27
|
+
// 3) -> registers object by IService (POLICY, BUNDLE, STAKE)
|
26
28
|
|
29
|
+
/// @title Chain Registry contract implementing IRegistry.
|
30
|
+
/// @notice See IRegistry for method details.
|
27
31
|
contract Registry is
|
28
|
-
|
32
|
+
Initializable,
|
33
|
+
AccessManaged,
|
29
34
|
IRegistry
|
30
35
|
{
|
31
|
-
|
32
|
-
|
36
|
+
using NftIdLib for NftId;
|
37
|
+
|
38
|
+
address public NFT_LOCK_ADDRESS = address(0x1);
|
33
39
|
uint256 public constant REGISTRY_TOKEN_SEQUENCE_ID = 2;
|
34
|
-
uint256 public constant
|
40
|
+
uint256 public constant STAKING_TOKEN_SEQUENCE_ID = 3;
|
35
41
|
string public constant EMPTY_URI = "";
|
36
42
|
|
37
|
-
|
43
|
+
/// @dev stores the deployer address and allows to create initializers
|
44
|
+
/// that are restricted to the deployer address.
|
45
|
+
address public immutable _deployer;
|
38
46
|
|
39
47
|
mapping(NftId nftId => ObjectInfo info) internal _info;
|
40
48
|
mapping(address object => NftId nftId) internal _nftIdByAddress;
|
41
49
|
|
50
|
+
mapping(VersionPart version => mapping(ObjectType serviceDomain => address)) private _service;
|
51
|
+
|
52
|
+
mapping(ObjectType objectType => bool) private _coreTypes;
|
53
|
+
|
42
54
|
mapping(ObjectType objectType => mapping(
|
43
|
-
ObjectType parentType => bool))
|
55
|
+
ObjectType parentType => bool)) private _coreContractCombinations;
|
44
56
|
|
45
57
|
mapping(ObjectType objectType => mapping(
|
46
|
-
ObjectType parentType => bool))
|
58
|
+
ObjectType parentType => bool)) private _coreObjectCombinations;
|
47
59
|
|
48
|
-
|
49
|
-
|
50
|
-
VersionPart majorVersion => address service)) internal _service;
|
60
|
+
RegistryAdmin public immutable _admin;
|
61
|
+
ChainNft public immutable _chainNft;
|
51
62
|
|
52
|
-
NftId
|
53
|
-
NftId
|
54
|
-
|
63
|
+
NftId public immutable _protocolNftId;
|
64
|
+
NftId public immutable _registryNftId;
|
65
|
+
NftId public _stakingNftId;
|
55
66
|
|
67
|
+
address public _tokenRegistryAddress;
|
68
|
+
address public _stakingAddress;
|
69
|
+
ReleaseRegistry public _releaseRegistry;
|
56
70
|
|
57
|
-
modifier
|
58
|
-
if(msg.sender !=
|
59
|
-
revert
|
71
|
+
modifier onlyDeployer() {
|
72
|
+
if (msg.sender != _deployer) {
|
73
|
+
revert ErrorRegistryCallerNotDeployer();
|
60
74
|
}
|
61
75
|
_;
|
62
76
|
}
|
63
77
|
|
64
|
-
modifier
|
65
|
-
if(msg.sender !=
|
66
|
-
revert
|
78
|
+
modifier onlyReleaseRegistry() {
|
79
|
+
if(msg.sender != address(_releaseRegistry)) {
|
80
|
+
revert ErrorRegistryCallerNotReleaseRegistry();
|
67
81
|
}
|
68
82
|
_;
|
69
83
|
}
|
70
84
|
|
71
|
-
|
85
|
+
/// @dev Creates the registry contract and populates it with the protocol and registry objects.
|
86
|
+
/// Internally deploys the ChainNft contract.
|
87
|
+
// TODO consider storing global registry address as constant
|
88
|
+
constructor(RegistryAdmin admin, address globalRegistry)
|
89
|
+
AccessManaged(admin.authority())
|
72
90
|
{
|
73
|
-
|
74
|
-
|
75
|
-
// major version at constructor time
|
76
|
-
_majorVersion = VersionLib.toVersionPart(GIF_MAJOR_VERSION_AT_DEPLOYMENT);
|
77
|
-
emit LogInitialMajorVersionSet(_majorVersion);
|
78
|
-
|
91
|
+
_deployer = msg.sender;
|
92
|
+
_admin = admin;
|
79
93
|
// deploy NFT
|
80
|
-
_chainNft = new ChainNft(address(this))
|
94
|
+
_chainNft = new ChainNft(address(this));
|
81
95
|
|
82
96
|
// initial registry setup
|
83
|
-
_registerProtocol();
|
84
|
-
_registerRegistry(
|
85
|
-
_registerRegistryService(registryOwner);
|
86
|
-
|
87
|
-
// set object parent relations
|
88
|
-
_setupValidObjectParentCombinations();
|
97
|
+
_protocolNftId = _registerProtocol();
|
98
|
+
_registryNftId = _registerRegistry(globalRegistry);
|
89
99
|
|
90
|
-
|
100
|
+
// set object types and object parent relations
|
101
|
+
_setupValidCoreTypesAndCombinations();
|
91
102
|
}
|
92
103
|
|
93
|
-
// from IRegistry
|
94
104
|
|
95
|
-
/// @dev
|
96
|
-
|
105
|
+
/// @dev Wires release registry and token to registry (this contract).
|
106
|
+
/// MUST be called by release registry.
|
107
|
+
function initialize(
|
108
|
+
address releaseRegistry,
|
109
|
+
address tokenRegistry,
|
110
|
+
address staking
|
111
|
+
)
|
97
112
|
external
|
98
|
-
|
113
|
+
initializer()
|
114
|
+
onlyDeployer()
|
99
115
|
{
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
if (newMax <= oldMax || newMax - oldMax != 1) {
|
104
|
-
revert MajorVersionMaxIncreaseInvalid(newMajorVersion, _majorVersion);
|
105
|
-
}
|
116
|
+
_releaseRegistry = ReleaseRegistry(releaseRegistry);
|
117
|
+
_tokenRegistryAddress = tokenRegistry;
|
118
|
+
_stakingAddress = staking;
|
106
119
|
|
107
|
-
|
108
|
-
emit LogMajorVersionSet(_majorVersion);
|
120
|
+
_stakingNftId = _registerStaking();
|
109
121
|
}
|
110
122
|
|
111
|
-
/// @
|
112
|
-
// TODO service registration means its approval for some type?
|
113
|
-
// TODO registration of precompile addresses
|
123
|
+
/// @inheritdoc IRegistry
|
114
124
|
function register(ObjectInfo memory info)
|
115
125
|
external
|
116
|
-
|
126
|
+
restricted
|
117
127
|
returns(NftId nftId)
|
118
128
|
{
|
119
129
|
ObjectType objectType = info.objectType;
|
120
|
-
|
121
|
-
ObjectInfo memory parentInfo = _info[parentNftId];
|
122
|
-
ObjectType parentType = parentInfo.objectType; // see function header
|
123
|
-
address parentAddress = parentInfo.objectAddress;
|
130
|
+
ObjectType parentType = _info[info.parentNftId].objectType;
|
124
131
|
|
125
|
-
//
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
132
|
+
// check type combinations for core objects
|
133
|
+
if(info.objectAddress == address(0)) {
|
134
|
+
if(_coreObjectCombinations[objectType][parentType] == false) {
|
135
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
136
|
+
}
|
137
|
+
}
|
138
|
+
// check type combinations for contract objects
|
139
|
+
else {
|
140
|
+
if(_coreContractCombinations[objectType][parentType] == false) {
|
141
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
142
|
+
}
|
131
143
|
}
|
132
144
|
|
133
|
-
|
145
|
+
nftId = _register(info);
|
146
|
+
}
|
134
147
|
|
135
|
-
// TODO does external call
|
136
|
-
uint256 mintedTokenId = _chainNft.mint(
|
137
|
-
info.initialOwner,
|
138
|
-
interceptor,
|
139
|
-
EMPTY_URI);
|
140
|
-
nftId = toNftId(mintedTokenId);
|
141
148
|
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
149
|
+
/// @inheritdoc IRegistry
|
150
|
+
function registerService(
|
151
|
+
ObjectInfo memory info,
|
152
|
+
VersionPart version,
|
153
|
+
ObjectType domain
|
154
|
+
)
|
155
|
+
external
|
156
|
+
onlyReleaseRegistry
|
157
|
+
returns(NftId nftId)
|
158
|
+
{
|
159
|
+
// check service address is defined
|
160
|
+
address service = info.objectAddress;
|
161
|
+
if(service == address(0)) {
|
162
|
+
revert ErrorRegistryServiceAddressZero();
|
163
|
+
}
|
147
164
|
|
148
|
-
|
149
|
-
{
|
150
|
-
|
151
|
-
|
152
|
-
if(_isValidContractCombination[objectType][parentType] == false) {
|
153
|
-
revert InvalidTypesCombination(objectType, parentType);
|
154
|
-
}
|
165
|
+
// check version is defined
|
166
|
+
if(version.eqz()) {
|
167
|
+
revert ErrorRegistryServiceVersionZero();
|
168
|
+
}
|
155
169
|
|
156
|
-
|
170
|
+
// check domain is defined
|
171
|
+
if(domain.eqz()) {
|
172
|
+
revert ErrorRegistryDomainZero(service);
|
173
|
+
}
|
157
174
|
|
158
|
-
|
159
|
-
|
160
|
-
|
175
|
+
// check contract has not already been registered
|
176
|
+
if(_service[version][domain] != address(0)) {
|
177
|
+
revert ErrorRegistryDomainAlreadyRegistered(service, version, domain);
|
178
|
+
}
|
179
|
+
|
180
|
+
// check service has proper type
|
181
|
+
if(info.objectType != SERVICE()) {
|
182
|
+
revert ErrorRegistryNotService(service, info.objectType);
|
183
|
+
}
|
161
184
|
|
162
|
-
|
185
|
+
// check that parent has registry type
|
186
|
+
if(info.parentNftId != _registryNftId) {
|
187
|
+
revert ErrorRegistryServiceParentNotRegistry(info.parentNftId);
|
188
|
+
}
|
163
189
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
190
|
+
_service[version][domain] = service;
|
191
|
+
nftId = _register(info);
|
192
|
+
|
193
|
+
emit LogServiceRegistration(version, domain);
|
194
|
+
}
|
195
|
+
|
196
|
+
|
197
|
+
/// @inheritdoc IRegistry
|
198
|
+
function registerWithCustomType(ObjectInfo memory info)
|
199
|
+
external
|
200
|
+
restricted
|
201
|
+
returns(NftId nftId)
|
202
|
+
{
|
203
|
+
ObjectType objectType = info.objectType;
|
204
|
+
ObjectType parentType = _info[info.parentNftId].objectType;
|
205
|
+
|
206
|
+
if(_coreTypes[objectType]) {
|
207
|
+
revert ErrorRegistryCoreTypeRegistration();
|
168
208
|
}
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
209
|
+
|
210
|
+
if(
|
211
|
+
parentType == PROTOCOL() ||
|
212
|
+
parentType == SERVICE()
|
213
|
+
) {
|
214
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
174
215
|
}
|
175
216
|
|
176
|
-
|
217
|
+
nftId = _register(info);
|
177
218
|
}
|
219
|
+
|
220
|
+
|
178
221
|
/// @dev earliest GIF major version
|
179
|
-
function
|
180
|
-
return
|
222
|
+
function getInitialVersion() external view returns (VersionPart) {
|
223
|
+
return _releaseRegistry.getInitialVersion();
|
181
224
|
}
|
182
225
|
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
// likely setting up a new gif version does not fit into a single tx
|
187
|
-
// in this case we might want to have a period where the latest version is
|
188
|
-
// in the process of being set up while the latest active version is 1 major release smaller
|
189
|
-
/// @dev latest GIF major version (might not yet be active)
|
190
|
-
function getMajorVersionMax() external view returns (VersionPart) {
|
191
|
-
return _majorVersion;
|
226
|
+
/// @dev next GIF release version to be released
|
227
|
+
function getNextVersion() external view returns (VersionPart) {
|
228
|
+
return _releaseRegistry.getNextVersion();
|
192
229
|
}
|
193
230
|
|
194
231
|
/// @dev latest active GIF release version
|
195
|
-
function
|
196
|
-
return
|
232
|
+
function getLatestVersion() external view returns (VersionPart) {
|
233
|
+
return _releaseRegistry.getLatestVersion();
|
197
234
|
}
|
198
235
|
|
199
|
-
function
|
236
|
+
function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory) {
|
237
|
+
return _releaseRegistry.getReleaseInfo(version);
|
238
|
+
}
|
239
|
+
|
240
|
+
function getObjectCount() external view returns (uint256) {
|
200
241
|
return _chainNft.totalSupply();
|
201
242
|
}
|
202
243
|
|
@@ -204,11 +245,15 @@ contract Registry is
|
|
204
245
|
return _registryNftId;
|
205
246
|
}
|
206
247
|
|
207
|
-
function
|
248
|
+
function getProtocolNftId() external view returns (NftId nftId) {
|
249
|
+
return _protocolNftId;
|
250
|
+
}
|
251
|
+
|
252
|
+
function getNftId(address object) external view returns (NftId id) {
|
208
253
|
return _nftIdByAddress[object];
|
209
254
|
}
|
210
255
|
|
211
|
-
function ownerOf(NftId nftId) public view
|
256
|
+
function ownerOf(NftId nftId) public view returns (address) {
|
212
257
|
return _chainNft.ownerOf(nftId.toInt());
|
213
258
|
}
|
214
259
|
|
@@ -216,85 +261,162 @@ contract Registry is
|
|
216
261
|
return _chainNft.ownerOf(_nftIdByAddress[contractAddress].toInt());
|
217
262
|
}
|
218
263
|
|
219
|
-
function getObjectInfo(NftId nftId) external view
|
264
|
+
function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory) {
|
220
265
|
return _info[nftId];
|
221
266
|
}
|
222
267
|
|
223
|
-
function getObjectInfo(address object) external view
|
268
|
+
function getObjectInfo(address object) external view returns (ObjectInfo memory) {
|
224
269
|
return _info[_nftIdByAddress[object]];
|
225
270
|
}
|
226
271
|
|
227
|
-
function isRegistered(NftId nftId) public view
|
272
|
+
function isRegistered(NftId nftId) public view returns (bool) {
|
228
273
|
return _info[nftId].objectType.gtz();
|
229
274
|
}
|
230
275
|
|
231
|
-
function isRegistered(address object) external view
|
276
|
+
function isRegistered(address object) external view returns (bool) {
|
232
277
|
return _nftIdByAddress[object].gtz();
|
233
278
|
}
|
234
279
|
|
235
|
-
function isRegisteredService(address object) external view
|
236
|
-
return
|
280
|
+
function isRegisteredService(address object) external view returns (bool) {
|
281
|
+
return _info[_nftIdByAddress[object]].objectType == SERVICE();
|
237
282
|
}
|
238
283
|
|
239
|
-
function
|
240
|
-
|
284
|
+
function isRegisteredComponent(address object) external view returns (bool) {
|
285
|
+
NftId objectParentNftId = _info[_nftIdByAddress[object]].parentNftId;
|
286
|
+
return _info[objectParentNftId].objectType == INSTANCE();
|
287
|
+
}
|
288
|
+
|
289
|
+
function isActiveRelease(VersionPart version) external view returns (bool)
|
290
|
+
{
|
291
|
+
return _releaseRegistry.isActiveRelease(version);
|
292
|
+
}
|
293
|
+
|
294
|
+
function getStakingAddress() external view returns (address staking) {
|
295
|
+
//return getObjectInfo(_stakingNftId).objectAddress;
|
296
|
+
//return _info[_stakingNftId].objectAddress;
|
297
|
+
return _stakingAddress;
|
298
|
+
}
|
299
|
+
|
300
|
+
function getTokenRegistryAddress() external view returns (address tokenRegistry) {
|
301
|
+
return _tokenRegistryAddress;
|
241
302
|
}
|
242
303
|
|
243
|
-
// special case to retrive a gif service
|
244
304
|
function getServiceAddress(
|
245
|
-
|
246
|
-
VersionPart
|
247
|
-
) external view returns (address)
|
305
|
+
ObjectType serviceDomain,
|
306
|
+
VersionPart releaseVersion
|
307
|
+
) external view returns (address service)
|
248
308
|
{
|
249
|
-
|
250
|
-
|
309
|
+
service = _service[releaseVersion][serviceDomain];
|
310
|
+
}
|
311
|
+
|
312
|
+
function getReleaseRegistryAddress() external view returns (address) {
|
313
|
+
return address(_releaseRegistry);
|
314
|
+
}
|
315
|
+
|
316
|
+
function getChainNftAddress() external view override returns (address) {
|
317
|
+
return address(_chainNft);
|
318
|
+
}
|
319
|
+
|
320
|
+
function getRegistryAdminAddress() external view returns (address) {
|
321
|
+
return address(_admin);
|
251
322
|
}
|
252
323
|
|
253
|
-
function
|
254
|
-
return
|
324
|
+
function getAuthority() external view returns (address) {
|
325
|
+
return _admin.authority();
|
255
326
|
}
|
256
327
|
|
257
328
|
function getOwner() public view returns (address owner) {
|
258
329
|
return ownerOf(address(this));
|
259
330
|
}
|
260
331
|
|
332
|
+
// IERC165
|
333
|
+
|
334
|
+
function supportsInterface(bytes4 interfaceId) external pure returns (bool) {
|
335
|
+
if(interfaceId == type(IERC165).interfaceId || interfaceId == type(IRegistry).interfaceId) {
|
336
|
+
return true;
|
337
|
+
}
|
338
|
+
|
339
|
+
return false;
|
340
|
+
}
|
341
|
+
|
261
342
|
// Internals
|
262
343
|
|
263
|
-
|
344
|
+
/// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
|
345
|
+
function _register(ObjectInfo memory info)
|
264
346
|
internal
|
347
|
+
returns(NftId nftId)
|
265
348
|
{
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
349
|
+
ObjectType objectType = info.objectType;
|
350
|
+
bool isInterceptor = info.isInterceptor;
|
351
|
+
address objectAddress = info.objectAddress;
|
352
|
+
address owner = info.initialOwner;
|
353
|
+
|
354
|
+
NftId parentNftId = info.parentNftId;
|
355
|
+
ObjectInfo memory parentInfo = _info[parentNftId];
|
356
|
+
ObjectType parentType = parentInfo.objectType; // see function header
|
357
|
+
address parentAddress = parentInfo.objectAddress;
|
358
|
+
|
359
|
+
// parent is contract -> need to check? -> check before minting
|
360
|
+
// special case: staking: to protocol possible as well
|
361
|
+
// special case: global registry nft as parent when not on mainnet -> global registry address is 0
|
362
|
+
// special case: when parentNftId == _chainNft.mint(), check for zero parent address before mint
|
363
|
+
// special case: when parentNftId == _chainNft.mint() && objectAddress == initialOwner
|
364
|
+
if(objectType != STAKE()) {
|
365
|
+
if(parentAddress == address(0)) {
|
366
|
+
revert ErrorRegistryParentAddressZero();
|
367
|
+
}
|
275
368
|
}
|
276
|
-
|
277
|
-
|
278
|
-
|
369
|
+
|
370
|
+
address interceptorAddress = _getInterceptor(
|
371
|
+
isInterceptor,
|
372
|
+
objectType,
|
373
|
+
objectAddress,
|
374
|
+
parentInfo.isInterceptor,
|
375
|
+
parentAddress);
|
376
|
+
|
377
|
+
uint256 tokenId = _chainNft.getNextTokenId();
|
378
|
+
nftId = NftIdLib.toNftId(tokenId);
|
379
|
+
info.nftId = nftId;
|
380
|
+
_info[nftId] = info;
|
381
|
+
|
382
|
+
if(objectAddress > address(0)) {
|
383
|
+
if(_nftIdByAddress[objectAddress].gtz()) {
|
384
|
+
revert ErrorRegistryContractAlreadyRegistered(objectAddress);
|
385
|
+
}
|
386
|
+
|
387
|
+
_nftIdByAddress[objectAddress] = nftId;
|
279
388
|
}
|
280
389
|
|
281
|
-
|
282
|
-
|
390
|
+
emit LogRegistration(nftId, parentNftId, objectType, isInterceptor, objectAddress, owner);
|
391
|
+
|
392
|
+
// calls nft receiver(1) and interceptor(2)
|
393
|
+
uint256 mintedTokenId = _chainNft.mint(
|
394
|
+
owner,
|
395
|
+
interceptorAddress,
|
396
|
+
EMPTY_URI);
|
283
397
|
|
284
|
-
|
398
|
+
assert(mintedTokenId == tokenId);
|
285
399
|
}
|
286
400
|
|
287
401
|
/// @dev obtain interceptor address for this nft if applicable, address(0) otherwise
|
402
|
+
/// special case: STAKES (parent may be any type) -> no intercept call
|
403
|
+
/// default case:
|
288
404
|
function _getInterceptor(
|
289
405
|
bool isInterceptor,
|
406
|
+
ObjectType objectType,
|
290
407
|
address objectAddress,
|
291
408
|
bool parentIsInterceptor,
|
292
409
|
address parentObjectAddress
|
293
410
|
)
|
294
411
|
internal
|
295
|
-
|
412
|
+
pure
|
296
413
|
returns (address interceptor)
|
297
414
|
{
|
415
|
+
// no intercepting calls for stakes
|
416
|
+
if (objectType == STAKE()) {
|
417
|
+
return address(0);
|
418
|
+
}
|
419
|
+
|
298
420
|
if (objectAddress == address(0)) {
|
299
421
|
if (parentIsInterceptor) {
|
300
422
|
return parentObjectAddress;
|
@@ -314,135 +436,130 @@ contract Registry is
|
|
314
436
|
|
315
437
|
/// @dev protocol registration used to anchor the dip ecosystem relations
|
316
438
|
function _registerProtocol()
|
317
|
-
|
439
|
+
private
|
440
|
+
returns (NftId protocolNftId)
|
318
441
|
{
|
319
442
|
uint256 protocolId = _chainNft.PROTOCOL_NFT_ID();
|
320
|
-
|
443
|
+
protocolNftId = NftIdLib.toNftId(protocolId);
|
444
|
+
|
445
|
+
_info[protocolNftId] = ObjectInfo({
|
446
|
+
nftId: protocolNftId,
|
447
|
+
parentNftId: NftIdLib.zero(),
|
448
|
+
objectType: PROTOCOL(),
|
449
|
+
isInterceptor: false,
|
450
|
+
objectAddress: address(0),
|
451
|
+
initialOwner: NFT_LOCK_ADDRESS,
|
452
|
+
data: ""
|
453
|
+
});
|
321
454
|
|
322
455
|
_chainNft.mint(NFT_LOCK_ADDRESS, protocolId);
|
323
|
-
|
324
|
-
_info[protocolNftId] = ObjectInfo(
|
325
|
-
protocolNftId,
|
326
|
-
zeroNftId(), // parent
|
327
|
-
PROTOCOL(),
|
328
|
-
false, // isInterceptor
|
329
|
-
address(0), // objectAddress
|
330
|
-
NFT_LOCK_ADDRESS,// initialOwner
|
331
|
-
""
|
332
|
-
);
|
333
456
|
}
|
334
457
|
|
335
|
-
/// @dev registry registration
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
{
|
340
|
-
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
341
|
-
NftId registryNftId = toNftId(registryId);
|
342
|
-
|
343
|
-
NftId parentNftId;
|
344
|
-
|
345
|
-
if(registryId != _chainNft.GLOBAL_REGISTRY_ID())
|
346
|
-
{// we're not the global registry
|
347
|
-
_registerGlobalRegistry();
|
348
|
-
parentNftId = toNftId(_chainNft.GLOBAL_REGISTRY_ID());
|
349
|
-
}
|
350
|
-
else
|
351
|
-
{// we are global registry
|
352
|
-
parentNftId = toNftId(_chainNft.PROTOCOL_NFT_ID());
|
353
|
-
}
|
354
|
-
|
355
|
-
_chainNft.mint(registryOwner, registryId);
|
356
|
-
|
357
|
-
_info[registryNftId] = ObjectInfo(
|
358
|
-
registryNftId,
|
359
|
-
parentNftId,
|
360
|
-
REGISTRY(),
|
361
|
-
false, // isInterceptor
|
362
|
-
address(this),
|
363
|
-
registryOwner,
|
364
|
-
""
|
365
|
-
);
|
366
|
-
_nftIdByAddress[address(this)] = registryNftId;
|
367
|
-
_registryNftId = registryNftId;
|
368
|
-
}
|
369
|
-
|
370
|
-
|
371
|
-
/// @dev global registry registration for non mainnet registries
|
372
|
-
function _registerGlobalRegistry()
|
373
|
-
internal
|
458
|
+
/// @dev global registry registration
|
459
|
+
function _registerGlobalRegistry(address globalRegistry)
|
460
|
+
private
|
461
|
+
returns (NftId globalRegistryNftId)
|
374
462
|
{
|
375
463
|
uint256 globalRegistryId = _chainNft.GLOBAL_REGISTRY_ID();
|
376
|
-
|
464
|
+
globalRegistryNftId = NftIdLib.toNftId(globalRegistryId);
|
465
|
+
|
466
|
+
_info[globalRegistryNftId] = ObjectInfo({
|
467
|
+
nftId: globalRegistryNftId,
|
468
|
+
parentNftId: _protocolNftId,
|
469
|
+
objectType: REGISTRY(),
|
470
|
+
isInterceptor: false,
|
471
|
+
objectAddress: globalRegistry,
|
472
|
+
initialOwner: NFT_LOCK_ADDRESS,
|
473
|
+
data: ""
|
474
|
+
});
|
475
|
+
|
476
|
+
_nftIdByAddress[address(this)] = globalRegistryNftId;
|
377
477
|
_chainNft.mint(NFT_LOCK_ADDRESS, globalRegistryId);
|
378
|
-
|
379
|
-
NftId globalRegistryNftId = toNftId(globalRegistryId);
|
380
|
-
|
381
|
-
_info[globalRegistryNftId] = ObjectInfo(
|
382
|
-
globalRegistryNftId,
|
383
|
-
toNftId(_chainNft.PROTOCOL_NFT_ID()), // parent
|
384
|
-
REGISTRY(),
|
385
|
-
false, // isInterceptor
|
386
|
-
address(0), // objectAddress
|
387
|
-
NFT_LOCK_ADDRESS, // initialOwner
|
388
|
-
"" // data
|
389
|
-
);
|
390
478
|
}
|
391
479
|
|
392
|
-
|
393
|
-
|
480
|
+
/// @dev registry registration
|
481
|
+
function _registerRegistry(address globalRegistry)
|
482
|
+
internal
|
483
|
+
virtual
|
484
|
+
returns (NftId registryNftId)
|
394
485
|
{
|
395
|
-
|
396
|
-
NftId serviceNftId = toNftId(serviceId);
|
486
|
+
NftId globalRegistryNftId = _registerGlobalRegistry(globalRegistry);
|
397
487
|
|
398
|
-
_chainNft.
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
488
|
+
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
489
|
+
registryNftId = NftIdLib.toNftId(registryId);
|
490
|
+
|
491
|
+
_info[registryNftId] = ObjectInfo({
|
492
|
+
nftId: registryNftId,
|
493
|
+
parentNftId: globalRegistryNftId,
|
494
|
+
objectType: REGISTRY(),
|
495
|
+
isInterceptor: false,
|
496
|
+
objectAddress: address(this),
|
497
|
+
initialOwner: NFT_LOCK_ADDRESS,
|
498
|
+
data: ""
|
499
|
+
});
|
409
500
|
|
410
|
-
_nftIdByAddress[
|
501
|
+
_nftIdByAddress[address(this)] = registryNftId;
|
502
|
+
_chainNft.mint(NFT_LOCK_ADDRESS, registryId);
|
503
|
+
}
|
411
504
|
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
505
|
+
/// @dev staking registration
|
506
|
+
function _registerStaking()
|
507
|
+
private
|
508
|
+
onlyInitializing()
|
509
|
+
returns (NftId stakingNftId)
|
510
|
+
{
|
511
|
+
address stakingOwner = IRegisterable(_stakingAddress).getOwner();
|
512
|
+
uint256 stakingId = _chainNft.calculateTokenId(STAKING_TOKEN_SEQUENCE_ID);
|
513
|
+
stakingNftId = NftIdLib.toNftId(stakingId);
|
514
|
+
|
515
|
+
_info[stakingNftId] = ObjectInfo({
|
516
|
+
nftId: stakingNftId,
|
517
|
+
parentNftId: _registryNftId,
|
518
|
+
objectType: STAKING(),
|
519
|
+
isInterceptor: false,
|
520
|
+
objectAddress: _stakingAddress,
|
521
|
+
initialOwner: stakingOwner,
|
522
|
+
data: ""
|
523
|
+
});
|
524
|
+
|
525
|
+
_nftIdByAddress[_stakingAddress] = stakingNftId;
|
526
|
+
_chainNft.mint(stakingOwner, stakingId);
|
417
527
|
}
|
418
528
|
|
419
529
|
/// @dev defines which object - parent types relations are allowed to register
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
// 3) DO NOT use REGISTRY as object type
|
424
|
-
// 2) DO NOT use PROTOCOL and "zeroObjectType"
|
425
|
-
function _setupValidObjectParentCombinations()
|
426
|
-
internal
|
530
|
+
/// EACH object type MUST have only one parent type across ALL mappings
|
531
|
+
function _setupValidCoreTypesAndCombinations()
|
532
|
+
private
|
427
533
|
{
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
//
|
442
|
-
|
443
|
-
|
444
|
-
//
|
445
|
-
|
446
|
-
|
534
|
+
_coreTypes[REGISTRY()] = true;
|
535
|
+
_coreTypes[SERVICE()] = true;
|
536
|
+
_coreTypes[INSTANCE()] = true;
|
537
|
+
_coreTypes[PRODUCT()] = true;
|
538
|
+
_coreTypes[POOL()] = true;
|
539
|
+
_coreTypes[DISTRIBUTION()] = true;
|
540
|
+
_coreTypes[DISTRIBUTOR()] = true;
|
541
|
+
_coreTypes[ORACLE()] = true;
|
542
|
+
_coreTypes[POLICY()] = true;
|
543
|
+
_coreTypes[BUNDLE()] = true;
|
544
|
+
_coreTypes[STAKING()] = true;
|
545
|
+
_coreTypes[STAKE()] = true;
|
546
|
+
|
547
|
+
_coreContractCombinations[STAKING()][REGISTRY()] = true; // only for chain staking contract
|
548
|
+
_coreContractCombinations[INSTANCE()][REGISTRY()] = true;
|
549
|
+
|
550
|
+
// components with instance parent
|
551
|
+
_coreContractCombinations[PRODUCT()][INSTANCE()] = true;
|
552
|
+
_coreContractCombinations[DISTRIBUTION()][INSTANCE()] = true;
|
553
|
+
_coreContractCombinations[ORACLE()][INSTANCE()] = true;
|
554
|
+
_coreContractCombinations[POOL()][INSTANCE()] = true;
|
555
|
+
|
556
|
+
// objects with coponent parents
|
557
|
+
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
558
|
+
_coreObjectCombinations[POLICY()][PRODUCT()] = true;
|
559
|
+
_coreObjectCombinations[BUNDLE()][POOL()] = true;
|
560
|
+
|
561
|
+
// staking
|
562
|
+
_coreObjectCombinations[STAKE()][PROTOCOL()] = true;
|
563
|
+
_coreObjectCombinations[STAKE()][INSTANCE()] = true;
|
447
564
|
}
|
448
565
|
}
|