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