@etherisc/gif-next 0.0.2-7143611-252 → 0.0.2-7177fd8-761
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 +118 -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/{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 +1518 -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 +1196 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1557 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +854 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +943 -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 +547 -246
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +482 -146
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +399 -2954
- 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 +802 -366
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +680 -223
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +386 -76
- 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/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
- 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 +802 -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 +1055 -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 +1432 -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 +1521 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +830 -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/pool/IPoolComponent.sol/IPoolComponent.json +946 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1182 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1218 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1644 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +770 -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 +1280 -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 +1386 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +834 -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} +241 -190
- 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} +266 -278
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -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 +1355 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +806 -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 +1238 -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 +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +363 -193
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +346 -278
- 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 +598 -253
- 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 +530 -339
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +346 -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 +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 +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +858 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1751 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +824 -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} +230 -172
- 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 +1033 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +362 -376
- 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/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 +977 -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/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 +107 -6
- package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.json +42 -0
- 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 +470 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1991 -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 +773 -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 +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 +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +295 -0
- package/contracts/distribution/DistributionService.sol +323 -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/BundleSet.sol +126 -0
- package/contracts/instance/IInstance.sol +74 -16
- package/contracts/instance/IInstanceService.sol +83 -8
- package/contracts/instance/Instance.sol +184 -366
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +195 -67
- package/contracts/instance/InstanceService.sol +422 -57
- package/contracts/instance/InstanceServiceManager.sol +13 -29
- package/contracts/instance/InstanceStore.sol +277 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +105 -0
- package/contracts/instance/base/ObjectSet.sol +79 -0
- package/contracts/instance/module/IAccess.sol +29 -21
- package/contracts/instance/module/IBundle.sol +8 -7
- 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 +437 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +133 -0
- package/contracts/pool/IPoolComponent.sol +58 -0
- package/contracts/pool/IPoolService.sol +147 -0
- package/contracts/pool/Pool.sol +328 -0
- package/contracts/pool/PoolService.sol +524 -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 +417 -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/IProductService.sol +34 -0
- package/contracts/product/PolicyService.sol +600 -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 +413 -0
- package/contracts/product/ProductService.sol +99 -0
- package/contracts/product/ProductServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +15 -0
- package/contracts/registry/IRegistry.sol +87 -45
- package/contracts/registry/IRegistryService.sol +51 -17
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +372 -270
- package/contracts/registry/RegistryAdmin.sol +365 -0
- package/contracts/registry/RegistryService.sol +118 -305
- package/contracts/registry/RegistryServiceManager.sol +27 -38
- 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 +315 -0
- package/contracts/shared/Component.sol +281 -0
- package/contracts/shared/ComponentService.sol +640 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/IComponent.sol +71 -0
- package/contracts/shared/IComponentService.sol +108 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +56 -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/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 +60 -89
- package/contracts/shared/PolicyHolder.sol +99 -0
- package/contracts/shared/Registerable.sol +26 -40
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +58 -30
- package/contracts/shared/TokenHandler.sol +41 -6
- package/contracts/shared/TokenTransferLib.sol +60 -0
- 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 +516 -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/type/NftIdSet.sol +62 -0
- 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 +38 -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/BaseComponent.sol/BaseComponent.json +0 -314
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -610
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -267
- 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 -774
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -754
- 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/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1119
- 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/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/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/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/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 -10
- 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 -86
- package/contracts/components/Distribution.sol +0 -166
- package/contracts/components/IBaseComponent.sol +0 -24
- package/contracts/components/IDistributionComponent.sol +0 -43
- package/contracts/components/IPoolComponent.sol +0 -62
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -259
- package/contracts/components/Product.sol +0 -297
- 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 -114
- package/contracts/instance/AccessManagerSimple.sol +0 -682
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/InstanceAccessManager.sol +0 -288
- package/contracts/instance/base/ComponentServiceBase.sol +0 -49
- 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 -43
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPoolService.sol +0 -37
- package/contracts/instance/service/IProductService.sol +0 -107
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/ERC165.sol +0 -21
- 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/NftIdSet.sol +0 -60
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -152
- package/contracts/types/RoleId.sol +0 -82
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,226 +1,241 @@
|
|
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
6
|
|
7
|
-
import {
|
8
|
-
import {IRegistry} from "./IRegistry.sol";
|
9
|
-
import {NftId, toNftId, zeroNftId, NftIdLib} from "../types/NftId.sol";
|
10
|
-
import {Version, VersionPart, VersionLib, VersionPartLib} from "../types/Version.sol";
|
11
|
-
import {ObjectType, PROTOCOL, REGISTRY, TOKEN, SERVICE, INSTANCE, STAKE, PRODUCT, DISTRIBUTION, ORACLE, POOL, POLICY, BUNDLE} from "../types/ObjectType.sol";
|
12
|
-
import {ITransferInterceptor} from "./ITransferInterceptor.sol";
|
7
|
+
import {InitializableCustom} from "../shared/InitializableCustom.sol";
|
13
8
|
|
14
|
-
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";
|
15
12
|
|
13
|
+
import {ChainNft} from "./ChainNft.sol";
|
14
|
+
import {IRegistry} from "./IRegistry.sol";
|
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
|
// 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
24
|
// Four registration flows:
|
22
|
-
// 1)
|
23
|
-
// 2)
|
24
|
-
// 3) IRegisterable address by
|
25
|
-
// 4) state object by
|
25
|
+
// 1) IService address by release manager (SERVICE of domain SERVICE aka registry service aka release creation)
|
26
|
+
// 2) IService address by release manager (SERVICE of domain !SERVICE aka regular service)
|
27
|
+
// 3) IRegisterable address by regular service (INSTANCE, PRODUCT, POOL, DISTRIBUTION, ORACLE)
|
28
|
+
// 4) state object by regular service (POLICY, BUNDLE, STAKE)
|
26
29
|
|
30
|
+
/// @title Chain Registry contract implementing IRegistry.
|
31
|
+
/// @notice See IRegistry for method details.
|
27
32
|
contract Registry is
|
28
|
-
|
33
|
+
InitializableCustom,
|
29
34
|
IRegistry
|
30
35
|
{
|
31
|
-
address public
|
32
|
-
uint256 public constant
|
36
|
+
address public NFT_LOCK_ADDRESS = address(0x1);
|
37
|
+
uint256 public constant REGISTRY_TOKEN_SEQUENCE_ID = 2;
|
38
|
+
uint256 public constant STAKING_TOKEN_SEQUENCE_ID = 3;
|
33
39
|
string public constant EMPTY_URI = "";
|
34
40
|
|
35
|
-
|
36
|
-
|
41
|
+
mapping(NftId nftId => ObjectInfo info) private _info;
|
42
|
+
mapping(address object => NftId nftId) private _nftIdByAddress;
|
37
43
|
|
38
|
-
mapping(
|
39
|
-
mapping(address object => NftId nftId) internal _nftIdByAddress;
|
44
|
+
mapping(VersionPart version => mapping(ObjectType serviceDomain => address)) private _service;
|
40
45
|
|
41
|
-
mapping(
|
42
|
-
ObjectType objectType => bool)) internal _isApproved;
|
46
|
+
mapping(ObjectType objectType => bool) private _coreTypes;
|
43
47
|
|
44
48
|
mapping(ObjectType objectType => mapping(
|
45
|
-
ObjectType parentType => bool))
|
49
|
+
ObjectType parentType => bool)) private _coreContractCombinations;
|
46
50
|
|
47
51
|
mapping(ObjectType objectType => mapping(
|
48
|
-
ObjectType parentType => bool))
|
52
|
+
ObjectType parentType => bool)) private _coreObjectCombinations;
|
49
53
|
|
50
|
-
|
51
|
-
|
54
|
+
RegistryAdmin public immutable _admin;
|
55
|
+
ChainNft public immutable _chainNft;
|
52
56
|
|
53
|
-
|
54
|
-
|
55
|
-
|
57
|
+
NftId public immutable _protocolNftId;
|
58
|
+
NftId public immutable _registryNftId;
|
59
|
+
NftId public _stakingNftId;
|
56
60
|
|
57
|
-
|
58
|
-
|
59
|
-
|
61
|
+
address public _tokenRegistryAddress;
|
62
|
+
address public _stakingAddress;
|
63
|
+
ReleaseRegistry public _releaseRegistry;
|
60
64
|
|
61
|
-
|
62
|
-
|
63
|
-
|
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
|
71
|
+
modifier onlyRegistryService() {
|
72
|
+
if(!_releaseRegistry.isActiveRegistryService(msg.sender)) {
|
73
|
+
revert ErrorRegistryCallerNotRegistryService();
|
65
74
|
}
|
66
75
|
_;
|
67
76
|
}
|
68
77
|
|
69
|
-
|
70
|
-
|
71
|
-
if(msg.sender !=
|
72
|
-
revert
|
78
|
+
|
79
|
+
modifier onlyReleaseRegistry() {
|
80
|
+
if(msg.sender != address(_releaseRegistry)) {
|
81
|
+
revert ErrorRegistryCallerNotReleaseRegistry();
|
73
82
|
}
|
74
83
|
_;
|
75
84
|
}
|
76
85
|
|
77
|
-
|
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()
|
78
90
|
{
|
79
|
-
|
80
|
-
|
81
|
-
// major version at constructor time
|
82
|
-
_majorVersionMin = VersionPartLib.toVersionPart(3);
|
83
|
-
_majorVersionMax = _majorVersionMin;
|
84
|
-
emit LogInitialMajorVersionSet(_majorVersionMin);
|
85
|
-
|
91
|
+
_admin = admin;
|
86
92
|
// deploy NFT
|
87
|
-
_chainNft = new ChainNft(address(this))
|
93
|
+
_chainNft = new ChainNft(address(this));
|
88
94
|
|
89
95
|
// initial registry setup
|
90
|
-
_registerProtocol();
|
91
|
-
_registerRegistry(
|
92
|
-
_registerRegistryService(registryOwner);
|
96
|
+
_protocolNftId = _registerProtocol();
|
97
|
+
_registryNftId = _registerRegistry();
|
93
98
|
|
94
|
-
// set object parent relations
|
95
|
-
|
96
|
-
|
97
|
-
_registerInterface(type(IRegistry).interfaceId);
|
99
|
+
// set object types and object parent relations
|
100
|
+
_setupValidCoreTypesAndCombinations();
|
98
101
|
}
|
99
102
|
|
100
|
-
// from IRegistry
|
101
103
|
|
102
|
-
|
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
|
+
)
|
103
111
|
external
|
104
|
-
|
112
|
+
initializer()
|
105
113
|
{
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
if (newMax <= oldMax || newMax - oldMax != 1) {
|
110
|
-
revert MajorVersionMaxIncreaseInvalid(newMajorVersionMax, _majorVersionMax);
|
111
|
-
}
|
114
|
+
_releaseRegistry = ReleaseRegistry(releaseRegistry);
|
115
|
+
_tokenRegistryAddress = tokenRegistry;
|
116
|
+
_stakingAddress = staking;
|
112
117
|
|
113
|
-
|
114
|
-
emit LogMajorVersionMaxSet(_majorVersionMax);
|
118
|
+
_stakingNftId = _registerStaking();
|
115
119
|
}
|
116
120
|
|
117
|
-
/// @
|
118
|
-
// TODO service registration means its approval for some type?
|
119
|
-
// TODO registration of precompile addresses
|
121
|
+
/// @inheritdoc IRegistry
|
120
122
|
function register(ObjectInfo memory info)
|
121
123
|
external
|
122
124
|
onlyRegistryService
|
123
125
|
returns(NftId nftId)
|
124
126
|
{
|
125
127
|
ObjectType objectType = info.objectType;
|
126
|
-
|
127
|
-
ObjectInfo memory parentInfo = _info[parentNftId];
|
128
|
-
ObjectType parentType = parentInfo.objectType; // see function header
|
129
|
-
address parentAddress = parentInfo.objectAddress;
|
128
|
+
ObjectType parentType = _info[info.parentNftId].objectType;
|
130
129
|
|
131
|
-
//
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
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
|
+
}
|
137
141
|
}
|
138
142
|
|
139
|
-
|
140
|
-
|
141
|
-
// TODO does external call
|
142
|
-
uint256 mintedTokenId = _chainNft.mint(
|
143
|
-
info.initialOwner,
|
144
|
-
interceptor,
|
145
|
-
EMPTY_URI);
|
146
|
-
nftId = toNftId(mintedTokenId);
|
147
|
-
|
148
|
-
// TODO move nftId out of info struct
|
149
|
-
// getters by nftId -> return struct without nftId
|
150
|
-
// getters by address -> return nftId AND struct
|
151
|
-
info.nftId = nftId;
|
152
|
-
_info[nftId] = info;
|
143
|
+
nftId = _register(info);
|
144
|
+
}
|
153
145
|
|
154
|
-
if(info.objectAddress > address(0))
|
155
|
-
{
|
156
|
-
// TODO if need to add types latter -> at least call this check from registry service
|
157
|
-
// parent is registered + object-parent types are valid
|
158
|
-
if(_isValidContractCombination[objectType][parentType] == false) {
|
159
|
-
revert InvalidTypesCombination(objectType, parentType);
|
160
|
-
}
|
161
146
|
|
162
|
-
|
147
|
+
/// @inheritdoc IRegistry
|
148
|
+
function registerService(
|
149
|
+
ObjectInfo memory info,
|
150
|
+
VersionPart version,
|
151
|
+
ObjectType domain
|
152
|
+
)
|
153
|
+
external
|
154
|
+
onlyReleaseRegistry
|
155
|
+
returns(NftId nftId)
|
156
|
+
{
|
157
|
+
// check service address is defined
|
158
|
+
address service = info.objectAddress;
|
159
|
+
if(service == address(0)) {
|
160
|
+
revert ErrorRegistryServiceAddressZero();
|
161
|
+
}
|
163
162
|
|
164
|
-
|
165
|
-
|
166
|
-
|
163
|
+
// check version is defined
|
164
|
+
if(version.eqz()) {
|
165
|
+
revert ErrorRegistryServiceVersionZero();
|
166
|
+
}
|
167
167
|
|
168
|
-
|
168
|
+
// check domain is defined
|
169
|
+
if(domain.eqz()) {
|
170
|
+
revert ErrorRegistryDomainZero(service);
|
171
|
+
}
|
169
172
|
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
}
|
173
|
+
// check contract has not already been registered
|
174
|
+
if(_service[version][domain] != address(0)) {
|
175
|
+
revert ErrorRegistryDomainAlreadyRegistered(service, version, domain);
|
174
176
|
}
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
}
|
177
|
+
|
178
|
+
// check service has proper type
|
179
|
+
if(info.objectType != SERVICE()) {
|
180
|
+
revert ErrorRegistryNotService(service, info.objectType);
|
180
181
|
}
|
181
182
|
|
182
|
-
|
183
|
+
// check that parent has registry type
|
184
|
+
if(info.parentNftId != _registryNftId) {
|
185
|
+
revert ErrorRegistryServiceParentNotRegistry(info.parentNftId);
|
186
|
+
}
|
187
|
+
|
188
|
+
_service[version][domain] = service;
|
189
|
+
nftId = _register(info);
|
190
|
+
|
191
|
+
emit LogServiceRegistration(version, domain);
|
183
192
|
}
|
184
193
|
|
185
|
-
|
194
|
+
|
195
|
+
/// @inheritdoc IRegistry
|
196
|
+
function registerWithCustomType(ObjectInfo memory info)
|
186
197
|
external
|
187
|
-
|
198
|
+
onlyRegistryService
|
199
|
+
returns(NftId nftId)
|
188
200
|
{
|
189
|
-
|
190
|
-
|
191
|
-
if (info.nftId.eqz()) {
|
192
|
-
revert TokenNotRegistered(token);
|
193
|
-
}
|
201
|
+
ObjectType objectType = info.objectType;
|
202
|
+
ObjectType parentType = _info[info.parentNftId].objectType;
|
194
203
|
|
195
|
-
|
196
|
-
|
197
|
-
revert NotToken(token);
|
204
|
+
if(_coreTypes[objectType]) {
|
205
|
+
revert ErrorRegistryCoreTypeRegistration();
|
198
206
|
}
|
199
207
|
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
if (version < versionMin || version > versionMax) {
|
206
|
-
revert TokenMajorVersionInvalid(majorVersion);
|
208
|
+
if(
|
209
|
+
parentType == PROTOCOL() ||
|
210
|
+
parentType == SERVICE()
|
211
|
+
) {
|
212
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
207
213
|
}
|
208
214
|
|
209
|
-
|
215
|
+
_register(info);
|
216
|
+
}
|
217
|
+
|
218
|
+
|
219
|
+
/// @dev earliest GIF major version
|
220
|
+
function getInitialVersion() external view returns (VersionPart) {
|
221
|
+
return _releaseRegistry.getInitialVersion();
|
222
|
+
}
|
210
223
|
|
211
|
-
|
224
|
+
/// @dev next GIF release version to be released
|
225
|
+
function getNextVersion() external view returns (VersionPart) {
|
226
|
+
return _releaseRegistry.getNextVersion();
|
212
227
|
}
|
213
228
|
|
214
|
-
|
215
|
-
|
229
|
+
/// @dev latest active GIF release version
|
230
|
+
function getLatestVersion() external view returns (VersionPart) {
|
231
|
+
return _releaseRegistry.getLatestVersion();
|
216
232
|
}
|
217
233
|
|
218
|
-
function
|
219
|
-
return
|
234
|
+
function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory) {
|
235
|
+
return _releaseRegistry.getReleaseInfo(version);
|
220
236
|
}
|
221
237
|
|
222
|
-
function getObjectCount() external view
|
223
|
-
|
238
|
+
function getObjectCount() external view returns (uint256) {
|
224
239
|
return _chainNft.totalSupply();
|
225
240
|
}
|
226
241
|
|
@@ -228,99 +243,178 @@ contract Registry is
|
|
228
243
|
return _registryNftId;
|
229
244
|
}
|
230
245
|
|
231
|
-
function
|
246
|
+
function getProtocolNftId() external view returns (NftId nftId) {
|
247
|
+
return _protocolNftId;
|
248
|
+
}
|
249
|
+
|
250
|
+
function getNftId(address object) external view returns (NftId id) {
|
232
251
|
return _nftIdByAddress[object];
|
233
252
|
}
|
234
253
|
|
235
|
-
function ownerOf(NftId nftId) public view
|
254
|
+
function ownerOf(NftId nftId) public view returns (address) {
|
236
255
|
return _chainNft.ownerOf(nftId.toInt());
|
237
256
|
}
|
238
257
|
|
239
258
|
function ownerOf(address contractAddress) public view returns (address) {
|
240
|
-
|
241
259
|
return _chainNft.ownerOf(_nftIdByAddress[contractAddress].toInt());
|
242
260
|
}
|
243
261
|
|
244
|
-
function getObjectInfo(NftId nftId) external view
|
262
|
+
function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory) {
|
245
263
|
return _info[nftId];
|
246
264
|
}
|
247
265
|
|
248
|
-
function getObjectInfo(address object) external view
|
249
|
-
|
266
|
+
function getObjectInfo(address object) external view returns (ObjectInfo memory) {
|
250
267
|
return _info[_nftIdByAddress[object]];
|
251
268
|
}
|
252
269
|
|
253
|
-
function isRegistered(NftId nftId) public view
|
270
|
+
function isRegistered(NftId nftId) public view returns (bool) {
|
254
271
|
return _info[nftId].objectType.gtz();
|
255
272
|
}
|
256
273
|
|
257
|
-
function isRegistered(address object) external view
|
274
|
+
function isRegistered(address object) external view returns (bool) {
|
258
275
|
return _nftIdByAddress[object].gtz();
|
259
276
|
}
|
260
277
|
|
261
|
-
function
|
262
|
-
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;
|
263
296
|
}
|
264
297
|
|
265
|
-
function
|
266
|
-
return
|
298
|
+
function getTokenRegistryAddress() external view returns (address tokenRegistry) {
|
299
|
+
return _tokenRegistryAddress;
|
267
300
|
}
|
268
301
|
|
269
|
-
// special case to retrive a gif service
|
270
302
|
function getServiceAddress(
|
271
|
-
|
272
|
-
VersionPart
|
273
|
-
) external view returns (address)
|
303
|
+
ObjectType serviceDomain,
|
304
|
+
VersionPart releaseVersion
|
305
|
+
) external view returns (address service)
|
274
306
|
{
|
275
|
-
|
276
|
-
|
307
|
+
service = _service[releaseVersion][serviceDomain];
|
308
|
+
}
|
309
|
+
|
310
|
+
function getReleaseRegistryAddress() external view returns (address) {
|
311
|
+
return address(_releaseRegistry);
|
277
312
|
}
|
278
313
|
|
279
|
-
function
|
280
|
-
return _chainNft;
|
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();
|
281
324
|
}
|
282
325
|
|
283
326
|
function getOwner() public view returns (address owner) {
|
284
327
|
return ownerOf(address(this));
|
285
328
|
}
|
286
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
|
+
|
287
340
|
// Internals
|
288
341
|
|
289
|
-
|
342
|
+
/// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
|
343
|
+
function _register(ObjectInfo memory info)
|
290
344
|
internal
|
345
|
+
returns(NftId nftId)
|
291
346
|
{
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
347
|
+
ObjectType objectType = info.objectType;
|
348
|
+
bool isInterceptor = info.isInterceptor;
|
349
|
+
address objectAddress = info.objectAddress;
|
350
|
+
address owner = info.initialOwner;
|
351
|
+
|
352
|
+
NftId parentNftId = info.parentNftId;
|
353
|
+
ObjectInfo memory parentInfo = _info[parentNftId];
|
354
|
+
ObjectType parentType = parentInfo.objectType; // see function header
|
355
|
+
address parentAddress = parentInfo.objectAddress;
|
356
|
+
|
357
|
+
// parent is contract -> need to check? -> check before minting
|
358
|
+
// special case: staking: to protocol possible as well
|
359
|
+
// special case: global registry nft as parent when not on mainnet -> global registry address is 0
|
360
|
+
// special case: when parentNftId == _chainNft.mint(), check for zero parent address before mint
|
361
|
+
// special case: when parentNftId == _chainNft.mint() && objectAddress == initialOwner
|
362
|
+
if(objectType != STAKE()) {
|
363
|
+
if(parentAddress == address(0)) {
|
364
|
+
revert ErrorRegistryParentAddressZero();
|
365
|
+
}
|
301
366
|
}
|
302
|
-
|
303
|
-
|
304
|
-
|
367
|
+
|
368
|
+
address interceptorAddress = _getInterceptor(
|
369
|
+
isInterceptor,
|
370
|
+
objectType,
|
371
|
+
objectAddress,
|
372
|
+
parentInfo.isInterceptor,
|
373
|
+
parentAddress);
|
374
|
+
|
375
|
+
uint256 tokenId = _chainNft.getNextTokenId();
|
376
|
+
nftId = NftIdLib.toNftId(tokenId);
|
377
|
+
info.nftId = nftId;
|
378
|
+
_info[nftId] = info;
|
379
|
+
|
380
|
+
if(objectAddress > address(0)) {
|
381
|
+
if(_nftIdByAddress[objectAddress].gtz()) {
|
382
|
+
revert ErrorRegistryContractAlreadyRegistered(objectAddress);
|
383
|
+
}
|
384
|
+
|
385
|
+
_nftIdByAddress[objectAddress] = nftId;
|
305
386
|
}
|
306
387
|
|
307
|
-
|
308
|
-
_service[serviceNameHash][majorVersion] = info.objectAddress;
|
388
|
+
emit LogRegistration(nftId, parentNftId, objectType, isInterceptor, objectAddress, owner);
|
309
389
|
|
310
|
-
|
390
|
+
// calls nft receiver(1) and interceptor(2)
|
391
|
+
uint256 mintedTokenId = _chainNft.mint(
|
392
|
+
owner,
|
393
|
+
interceptorAddress,
|
394
|
+
EMPTY_URI);
|
395
|
+
|
396
|
+
assert(mintedTokenId == tokenId);
|
311
397
|
}
|
312
398
|
|
313
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:
|
314
402
|
function _getInterceptor(
|
315
403
|
bool isInterceptor,
|
404
|
+
ObjectType objectType,
|
316
405
|
address objectAddress,
|
317
406
|
bool parentIsInterceptor,
|
318
407
|
address parentObjectAddress
|
319
408
|
)
|
320
409
|
internal
|
321
|
-
|
410
|
+
pure
|
322
411
|
returns (address interceptor)
|
323
412
|
{
|
413
|
+
// no intercepting calls for stakes
|
414
|
+
if (objectType == STAKE()) {
|
415
|
+
return address(0);
|
416
|
+
}
|
417
|
+
|
324
418
|
if (objectAddress == address(0)) {
|
325
419
|
if (parentIsInterceptor) {
|
326
420
|
return parentObjectAddress;
|
@@ -340,135 +434,143 @@ contract Registry is
|
|
340
434
|
|
341
435
|
/// @dev protocol registration used to anchor the dip ecosystem relations
|
342
436
|
function _registerProtocol()
|
343
|
-
|
437
|
+
private
|
438
|
+
returns (NftId protocolNftId)
|
344
439
|
{
|
345
440
|
uint256 protocolId = _chainNft.PROTOCOL_NFT_ID();
|
346
|
-
|
441
|
+
protocolNftId = NftIdLib.toNftId(protocolId);
|
442
|
+
|
443
|
+
_info[protocolNftId] = ObjectInfo({
|
444
|
+
nftId: protocolNftId,
|
445
|
+
parentNftId: NftIdLib.zero(),
|
446
|
+
objectType: PROTOCOL(),
|
447
|
+
isInterceptor: false,
|
448
|
+
objectAddress: address(0),
|
449
|
+
initialOwner: NFT_LOCK_ADDRESS,
|
450
|
+
data: ""
|
451
|
+
});
|
347
452
|
|
348
453
|
_chainNft.mint(NFT_LOCK_ADDRESS, protocolId);
|
349
|
-
|
350
|
-
_info[protocolNftId] = ObjectInfo(
|
351
|
-
protocolNftId,
|
352
|
-
zeroNftId(), // parent
|
353
|
-
PROTOCOL(),
|
354
|
-
false, // isInterceptor
|
355
|
-
address(0), // objectAddress
|
356
|
-
NFT_LOCK_ADDRESS,// initialOwner
|
357
|
-
""
|
358
|
-
);
|
359
454
|
}
|
360
455
|
|
361
456
|
/// @dev registry registration
|
362
457
|
/// might also register the global registry when not on mainnet
|
363
|
-
function _registerRegistry(
|
364
|
-
|
458
|
+
function _registerRegistry()
|
459
|
+
private
|
460
|
+
returns (NftId registryNftId)
|
365
461
|
{
|
366
|
-
uint256 registryId = _chainNft.calculateTokenId(
|
367
|
-
|
368
|
-
|
462
|
+
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
463
|
+
registryNftId = NftIdLib.toNftId(registryId);
|
369
464
|
NftId parentNftId;
|
370
465
|
|
371
466
|
if(registryId != _chainNft.GLOBAL_REGISTRY_ID())
|
372
467
|
{// we're not the global registry
|
373
468
|
_registerGlobalRegistry();
|
374
|
-
parentNftId = toNftId(_chainNft.GLOBAL_REGISTRY_ID());
|
469
|
+
parentNftId = NftIdLib.toNftId(_chainNft.GLOBAL_REGISTRY_ID());
|
375
470
|
}
|
376
471
|
else
|
377
472
|
{// we are global registry
|
378
|
-
parentNftId =
|
473
|
+
parentNftId = _protocolNftId;
|
379
474
|
}
|
380
475
|
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
);
|
476
|
+
_info[registryNftId] = ObjectInfo({
|
477
|
+
nftId: registryNftId,
|
478
|
+
parentNftId: parentNftId,
|
479
|
+
objectType: REGISTRY(),
|
480
|
+
isInterceptor: false,
|
481
|
+
objectAddress: address(this),
|
482
|
+
initialOwner: NFT_LOCK_ADDRESS,
|
483
|
+
data: ""
|
484
|
+
});
|
485
|
+
|
392
486
|
_nftIdByAddress[address(this)] = registryNftId;
|
393
|
-
|
487
|
+
_chainNft.mint(NFT_LOCK_ADDRESS, registryId);
|
394
488
|
}
|
395
489
|
|
396
|
-
|
397
490
|
/// @dev global registry registration for non mainnet registries
|
398
491
|
function _registerGlobalRegistry()
|
399
|
-
|
492
|
+
private
|
400
493
|
{
|
401
494
|
uint256 globalRegistryId = _chainNft.GLOBAL_REGISTRY_ID();
|
495
|
+
NftId globalRegistryNftId = NftIdLib.toNftId(globalRegistryId);
|
496
|
+
|
497
|
+
_info[globalRegistryNftId] = ObjectInfo({
|
498
|
+
nftId: globalRegistryNftId,
|
499
|
+
parentNftId: NftIdLib.toNftId(_chainNft.PROTOCOL_NFT_ID()),
|
500
|
+
objectType: REGISTRY(),
|
501
|
+
isInterceptor: false,
|
502
|
+
objectAddress: address(0),
|
503
|
+
initialOwner: NFT_LOCK_ADDRESS,
|
504
|
+
data: ""
|
505
|
+
});
|
402
506
|
|
403
507
|
_chainNft.mint(NFT_LOCK_ADDRESS, globalRegistryId);
|
404
|
-
|
405
|
-
NftId globalRegistryNftId = toNftId(globalRegistryId);
|
406
|
-
|
407
|
-
_info[globalRegistryNftId] = ObjectInfo(
|
408
|
-
globalRegistryNftId,
|
409
|
-
toNftId(_chainNft.PROTOCOL_NFT_ID()), // parent
|
410
|
-
REGISTRY(),
|
411
|
-
false, // isInterceptor
|
412
|
-
address(0), // objectAddress
|
413
|
-
NFT_LOCK_ADDRESS, // initialOwner
|
414
|
-
"" // data
|
415
|
-
);
|
416
508
|
}
|
417
|
-
|
418
|
-
function
|
419
|
-
|
509
|
+
// depends on _registryNftId and _stakingAddress
|
510
|
+
function _registerStaking()
|
511
|
+
private
|
512
|
+
returns (NftId stakingNftId)
|
420
513
|
{
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
bytes32 serviceNameHash = keccak256(abi.encode(serviceName));
|
440
|
-
_service[serviceNameHash][_majorVersionMin] = msg.sender;
|
441
|
-
_string[serviceNftId] = serviceName;
|
442
|
-
_serviceNftId = serviceNftId;
|
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);
|
443
532
|
}
|
444
533
|
|
445
534
|
/// @dev defines which object - parent types relations are allowed to register
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
// 3) DO NOT use REGISTRY as object type
|
450
|
-
// 2) DO NOT use PROTOCOL and "zeroObjectType"
|
451
|
-
function _setupValidObjectParentCombinations()
|
452
|
-
internal
|
535
|
+
/// EACH object type MUST have only one parent type across ALL mappings
|
536
|
+
function _setupValidCoreTypesAndCombinations()
|
537
|
+
private
|
453
538
|
{
|
454
|
-
|
455
|
-
|
456
|
-
|
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
|
+
}
|
457
556
|
|
458
|
-
// registry
|
459
|
-
|
557
|
+
// contracts with registry parent
|
558
|
+
_coreContractCombinations[STAKING()][REGISTRY()] = true; // only for chain staking contract
|
559
|
+
_coreContractCombinations[INSTANCE()][REGISTRY()] = true;
|
460
560
|
|
461
|
-
// instance
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
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;
|
466
566
|
|
467
|
-
//
|
468
|
-
|
567
|
+
// objects with coponent parents
|
568
|
+
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
569
|
+
_coreObjectCombinations[POLICY()][PRODUCT()] = true;
|
570
|
+
_coreObjectCombinations[BUNDLE()][POOL()] = true;
|
469
571
|
|
470
|
-
//
|
471
|
-
|
472
|
-
|
572
|
+
// staking
|
573
|
+
_coreObjectCombinations[STAKE()][PROTOCOL()] = true;
|
574
|
+
_coreObjectCombinations[STAKE()][INSTANCE()] = true;
|
473
575
|
}
|
474
576
|
}
|