@etherisc/gif-next 0.0.2-fd275d2-234 → 0.0.2-fd2ea71-734
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 +79 -19
- 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 +1489 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1159 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1502 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +842 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +906 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +914 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +274 -1320
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +444 -172
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +389 -3093
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +668 -397
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +587 -397
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +349 -127
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +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 +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 +1126 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -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 +1018 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1395 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1466 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +818 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +907 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1218 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1181 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1625 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +758 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +852 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1243 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1331 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/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/{instance/service/IProductService.sol/IProductService.json → product/IPolicyService.sol/IPolicyService.json} +410 -370
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +253 -373
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +948 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → product/IRiskService.sol/IRiskService.json} +124 -166
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1263 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1201 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +702 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +377 -112
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +290 -297
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +611 -189
- 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 +477 -318
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +337 -133
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +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 +351 -100
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +832 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1680 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +804 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +208 -209
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → shared/IComponent.sol/IComponent.json} +323 -164
- 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/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +700 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +97 -172
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +940 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/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 +382 -9
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1412 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +387 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1941 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +217 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +295 -0
- package/contracts/distribution/DistributionService.sol +322 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/distribution/IDistributionService.sol +95 -0
- package/contracts/instance/BundleSet.sol +126 -0
- package/contracts/instance/IInstance.sol +56 -49
- package/contracts/instance/IInstanceService.sol +78 -18
- package/contracts/instance/Instance.sol +157 -382
- package/contracts/instance/InstanceAdmin.sol +285 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +180 -87
- package/contracts/instance/InstanceService.sol +410 -175
- package/contracts/instance/InstanceServiceManager.sol +13 -30
- 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} +21 -37
- package/contracts/instance/module/IAccess.sol +29 -21
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +46 -0
- package/contracts/instance/module/IDistribution.sol +6 -4
- package/contracts/instance/module/IPolicy.sol +56 -17
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +167 -0
- package/contracts/oracle/OracleService.sol +279 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +436 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +134 -0
- package/contracts/pool/IPoolComponent.sol +58 -0
- package/contracts/pool/IPoolService.sol +163 -0
- package/contracts/pool/Pool.sol +328 -0
- package/contracts/pool/PoolService.sol +541 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +250 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +416 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +63 -0
- package/contracts/product/IClaimService.sol +100 -0
- package/contracts/product/IPolicyService.sol +84 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +40 -0
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +584 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +304 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +411 -0
- package/contracts/product/RiskService.sol +97 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +15 -0
- package/contracts/registry/IRegistry.sol +85 -32
- package/contracts/registry/IRegistryService.sol +47 -28
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +376 -248
- package/contracts/registry/RegistryAdmin.sol +374 -0
- package/contracts/registry/RegistryService.sol +111 -217
- package/contracts/registry/RegistryServiceManager.sol +26 -53
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -57
- package/contracts/shared/Component.sol +268 -0
- package/contracts/shared/ComponentService.sol +641 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/IComponent.sol +70 -0
- package/contracts/shared/IComponentService.sol +108 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +13 -12
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +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 +59 -86
- package/contracts/shared/PolicyHolder.sol +99 -0
- package/contracts/shared/Registerable.sol +26 -41
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +58 -31
- package/contracts/shared/TokenHandler.sol +122 -10
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +167 -0
- package/contracts/staking/IStakingService.sol +160 -0
- package/contracts/staking/StakeManagerLib.sol +206 -0
- package/contracts/staking/Staking.sol +497 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +50 -0
- package/contracts/staking/StakingReader.sol +183 -0
- package/contracts/staking/StakingService.sol +407 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +135 -0
- package/contracts/{types → type}/Blocknumber.sol +27 -3
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +33 -23
- package/contracts/{types → type}/NftId.sol +21 -15
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +271 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +6 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +174 -0
- package/contracts/type/Seconds.sol +93 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +34 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +34 -15
- package/contracts/{types → type}/UFixed.sol +35 -9
- package/contracts/{types → type}/Version.sol +5 -2
- package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
- package/contracts/upgradeability/ProxyManager.sol +198 -0
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/upgradeability/Versionable.sol +59 -0
- package/package.json +10 -7
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -787
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -729
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +0 -101
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -809
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -272
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -971
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -460
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1147
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -488
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/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 -33
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
- package/contracts/components/BaseComponent.sol +0 -91
- package/contracts/components/Distribution.sol +0 -163
- package/contracts/components/IBaseComponent.sol +0 -25
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -62
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -247
- package/contracts/components/Product.sol +0 -289
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagedSimple.sol +0 -115
- package/contracts/instance/AccessManagerSimple.sol +0 -692
- package/contracts/instance/BundleManager.sol +0 -152
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/InstanceAccessManager.sol +0 -288
- package/contracts/instance/base/ComponentServiceBase.sol +0 -134
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/base/Lifecycle.sol +0 -100
- package/contracts/instance/module/ISetup.sol +0 -46
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/DistributionService.sol +0 -88
- package/contracts/instance/service/DistributionServiceManager.sol +0 -54
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPoolService.sol +0 -43
- package/contracts/instance/service/IProductService.sol +0 -110
- package/contracts/instance/service/PoolService.sol +0 -206
- package/contracts/instance/service/PoolServiceManager.sol +0 -54
- package/contracts/instance/service/ProductService.sol +0 -561
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/ERC165.sol +0 -25
- package/contracts/shared/ProxyManager.sol +0 -94
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- package/contracts/shared/Versionable.sol +0 -147
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -24
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -152
- package/contracts/types/RoleId.sol +0 -90
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,202 +1,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
|
-
|
32
|
-
address public constant NFT_LOCK_ADDRESS = address(0x1);
|
36
|
+
address public NFT_LOCK_ADDRESS = address(0x1);
|
33
37
|
uint256 public constant REGISTRY_TOKEN_SEQUENCE_ID = 2;
|
34
|
-
uint256 public constant
|
38
|
+
uint256 public constant STAKING_TOKEN_SEQUENCE_ID = 3;
|
35
39
|
string public constant EMPTY_URI = "";
|
36
40
|
|
37
|
-
|
41
|
+
mapping(NftId nftId => ObjectInfo info) private _info;
|
42
|
+
mapping(address object => NftId nftId) private _nftIdByAddress;
|
38
43
|
|
39
|
-
mapping(
|
40
|
-
|
44
|
+
mapping(VersionPart version => mapping(ObjectType serviceDomain => address)) private _service;
|
45
|
+
|
46
|
+
mapping(ObjectType objectType => bool) private _coreTypes;
|
41
47
|
|
42
48
|
mapping(ObjectType objectType => mapping(
|
43
|
-
ObjectType parentType => bool))
|
49
|
+
ObjectType parentType => bool)) private _coreContractCombinations;
|
44
50
|
|
45
51
|
mapping(ObjectType objectType => mapping(
|
46
|
-
ObjectType parentType => bool))
|
52
|
+
ObjectType parentType => bool)) private _coreObjectCombinations;
|
47
53
|
|
48
|
-
|
49
|
-
|
50
|
-
VersionPart majorVersion => address service)) internal _service;
|
54
|
+
RegistryAdmin public immutable _admin;
|
55
|
+
ChainNft public immutable _chainNft;
|
51
56
|
|
52
|
-
NftId
|
53
|
-
NftId
|
54
|
-
|
57
|
+
NftId public immutable _protocolNftId;
|
58
|
+
NftId public immutable _registryNftId;
|
59
|
+
NftId public _stakingNftId;
|
55
60
|
|
61
|
+
address public _tokenRegistryAddress;
|
62
|
+
address public _stakingAddress;
|
63
|
+
ReleaseRegistry public _releaseRegistry;
|
56
64
|
|
57
|
-
|
58
|
-
|
59
|
-
|
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();
|
60
74
|
}
|
61
75
|
_;
|
62
76
|
}
|
63
77
|
|
64
|
-
|
65
|
-
|
66
|
-
|
78
|
+
|
79
|
+
modifier onlyReleaseRegistry() {
|
80
|
+
if(msg.sender != address(_releaseRegistry)) {
|
81
|
+
revert ErrorRegistryCallerNotReleaseRegistry();
|
67
82
|
}
|
68
83
|
_;
|
69
84
|
}
|
70
85
|
|
71
|
-
|
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()
|
72
90
|
{
|
73
|
-
|
74
|
-
|
75
|
-
// major version at constructor time
|
76
|
-
_majorVersion = VersionLib.toVersionPart(GIF_MAJOR_VERSION_AT_DEPLOYMENT);
|
77
|
-
emit LogInitialMajorVersionSet(_majorVersion);
|
78
|
-
|
91
|
+
_admin = admin;
|
79
92
|
// deploy NFT
|
80
|
-
_chainNft = new ChainNft(address(this))
|
93
|
+
_chainNft = new ChainNft(address(this));
|
81
94
|
|
82
95
|
// initial registry setup
|
83
|
-
_registerProtocol();
|
84
|
-
_registerRegistry(
|
85
|
-
_registerRegistryService(registryOwner);
|
96
|
+
_protocolNftId = _registerProtocol();
|
97
|
+
_registryNftId = _registerRegistry();
|
86
98
|
|
87
|
-
// set object parent relations
|
88
|
-
|
89
|
-
|
90
|
-
_registerInterface(type(IRegistry).interfaceId);
|
99
|
+
// set object types and object parent relations
|
100
|
+
_setupValidCoreTypesAndCombinations();
|
91
101
|
}
|
92
102
|
|
93
|
-
// from IRegistry
|
94
103
|
|
95
|
-
/// @dev
|
96
|
-
|
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
|
+
)
|
97
111
|
external
|
98
|
-
|
112
|
+
initializer()
|
99
113
|
{
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
if (newMax <= oldMax || newMax - oldMax != 1) {
|
104
|
-
revert MajorVersionMaxIncreaseInvalid(newMajorVersion, _majorVersion);
|
105
|
-
}
|
114
|
+
_releaseRegistry = ReleaseRegistry(releaseRegistry);
|
115
|
+
_tokenRegistryAddress = tokenRegistry;
|
116
|
+
_stakingAddress = staking;
|
106
117
|
|
107
|
-
|
108
|
-
emit LogMajorVersionSet(_majorVersion);
|
118
|
+
_stakingNftId = _registerStaking();
|
109
119
|
}
|
110
120
|
|
111
|
-
/// @
|
112
|
-
// TODO service registration means its approval for some type?
|
113
|
-
// TODO registration of precompile addresses
|
121
|
+
/// @inheritdoc IRegistry
|
114
122
|
function register(ObjectInfo memory info)
|
115
123
|
external
|
116
124
|
onlyRegistryService
|
117
125
|
returns(NftId nftId)
|
118
126
|
{
|
119
127
|
ObjectType objectType = info.objectType;
|
120
|
-
|
121
|
-
ObjectInfo memory parentInfo = _info[parentNftId];
|
122
|
-
ObjectType parentType = parentInfo.objectType; // see function header
|
123
|
-
address parentAddress = parentInfo.objectAddress;
|
128
|
+
ObjectType parentType = _info[info.parentNftId].objectType;
|
124
129
|
|
125
|
-
//
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
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
|
+
}
|
131
141
|
}
|
132
142
|
|
133
|
-
|
143
|
+
nftId = _register(info);
|
144
|
+
}
|
134
145
|
|
135
|
-
// TODO does external call
|
136
|
-
uint256 mintedTokenId = _chainNft.mint(
|
137
|
-
info.initialOwner,
|
138
|
-
interceptor,
|
139
|
-
EMPTY_URI);
|
140
|
-
nftId = toNftId(mintedTokenId);
|
141
146
|
|
142
|
-
|
143
|
-
|
144
|
-
|
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
|
+
}
|
147
162
|
|
148
|
-
|
149
|
-
{
|
150
|
-
|
151
|
-
|
152
|
-
if(_isValidContractCombination[objectType][parentType] == false) {
|
153
|
-
revert InvalidTypesCombination(objectType, parentType);
|
154
|
-
}
|
163
|
+
// check version is defined
|
164
|
+
if(version.eqz()) {
|
165
|
+
revert ErrorRegistryServiceVersionZero();
|
166
|
+
}
|
155
167
|
|
156
|
-
|
168
|
+
// check domain is defined
|
169
|
+
if(domain.eqz()) {
|
170
|
+
revert ErrorRegistryDomainZero(service);
|
171
|
+
}
|
157
172
|
|
158
|
-
|
159
|
-
|
160
|
-
|
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
|
+
}
|
161
182
|
|
162
|
-
|
183
|
+
// check that parent has registry type
|
184
|
+
if(info.parentNftId != _registryNftId) {
|
185
|
+
revert ErrorRegistryServiceParentNotRegistry(info.parentNftId);
|
186
|
+
}
|
163
187
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
188
|
+
_service[version][domain] = service;
|
189
|
+
nftId = _register(info);
|
190
|
+
|
191
|
+
emit LogServiceRegistration(version, domain);
|
192
|
+
}
|
193
|
+
|
194
|
+
|
195
|
+
/// @inheritdoc IRegistry
|
196
|
+
function registerWithCustomType(ObjectInfo memory info)
|
197
|
+
external
|
198
|
+
onlyRegistryService
|
199
|
+
returns(NftId nftId)
|
200
|
+
{
|
201
|
+
ObjectType objectType = info.objectType;
|
202
|
+
ObjectType parentType = _info[info.parentNftId].objectType;
|
203
|
+
|
204
|
+
if(_coreTypes[objectType]) {
|
205
|
+
revert ErrorRegistryCoreTypeRegistration();
|
168
206
|
}
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
207
|
+
|
208
|
+
if(
|
209
|
+
parentType == PROTOCOL() ||
|
210
|
+
parentType == SERVICE()
|
211
|
+
) {
|
212
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
174
213
|
}
|
175
214
|
|
176
|
-
|
215
|
+
_register(info);
|
177
216
|
}
|
217
|
+
|
218
|
+
|
178
219
|
/// @dev earliest GIF major version
|
179
|
-
function
|
180
|
-
return
|
220
|
+
function getInitialVersion() external view returns (VersionPart) {
|
221
|
+
return _releaseRegistry.getInitialVersion();
|
181
222
|
}
|
182
223
|
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
// likely setting up a new gif version does not fit into a single tx
|
187
|
-
// in this case we might want to have a period where the latest version is
|
188
|
-
// in the process of being set up while the latest active version is 1 major release smaller
|
189
|
-
/// @dev latest GIF major version (might not yet be active)
|
190
|
-
function getMajorVersionMax() external view returns (VersionPart) {
|
191
|
-
return _majorVersion;
|
224
|
+
/// @dev next GIF release version to be released
|
225
|
+
function getNextVersion() external view returns (VersionPart) {
|
226
|
+
return _releaseRegistry.getNextVersion();
|
192
227
|
}
|
193
228
|
|
194
229
|
/// @dev latest active GIF release version
|
195
|
-
function
|
196
|
-
return
|
230
|
+
function getLatestVersion() external view returns (VersionPart) {
|
231
|
+
return _releaseRegistry.getLatestVersion();
|
197
232
|
}
|
198
233
|
|
199
|
-
function
|
234
|
+
function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory) {
|
235
|
+
return _releaseRegistry.getReleaseInfo(version);
|
236
|
+
}
|
237
|
+
|
238
|
+
function getObjectCount() external view returns (uint256) {
|
200
239
|
return _chainNft.totalSupply();
|
201
240
|
}
|
202
241
|
|
@@ -204,11 +243,15 @@ contract Registry is
|
|
204
243
|
return _registryNftId;
|
205
244
|
}
|
206
245
|
|
207
|
-
function
|
246
|
+
function getProtocolNftId() external view returns (NftId nftId) {
|
247
|
+
return _protocolNftId;
|
248
|
+
}
|
249
|
+
|
250
|
+
function getNftId(address object) external view returns (NftId id) {
|
208
251
|
return _nftIdByAddress[object];
|
209
252
|
}
|
210
253
|
|
211
|
-
function ownerOf(NftId nftId) public view
|
254
|
+
function ownerOf(NftId nftId) public view returns (address) {
|
212
255
|
return _chainNft.ownerOf(nftId.toInt());
|
213
256
|
}
|
214
257
|
|
@@ -216,85 +259,162 @@ contract Registry is
|
|
216
259
|
return _chainNft.ownerOf(_nftIdByAddress[contractAddress].toInt());
|
217
260
|
}
|
218
261
|
|
219
|
-
function getObjectInfo(NftId nftId) external view
|
262
|
+
function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory) {
|
220
263
|
return _info[nftId];
|
221
264
|
}
|
222
265
|
|
223
|
-
function getObjectInfo(address object) external view
|
266
|
+
function getObjectInfo(address object) external view returns (ObjectInfo memory) {
|
224
267
|
return _info[_nftIdByAddress[object]];
|
225
268
|
}
|
226
269
|
|
227
|
-
function isRegistered(NftId nftId) public view
|
270
|
+
function isRegistered(NftId nftId) public view returns (bool) {
|
228
271
|
return _info[nftId].objectType.gtz();
|
229
272
|
}
|
230
273
|
|
231
|
-
function isRegistered(address object) external view
|
274
|
+
function isRegistered(address object) external view returns (bool) {
|
232
275
|
return _nftIdByAddress[object].gtz();
|
233
276
|
}
|
234
277
|
|
235
|
-
function isRegisteredService(address object) external view
|
236
|
-
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;
|
237
296
|
}
|
238
297
|
|
239
|
-
function
|
240
|
-
return
|
298
|
+
function getTokenRegistryAddress() external view returns (address tokenRegistry) {
|
299
|
+
return _tokenRegistryAddress;
|
241
300
|
}
|
242
301
|
|
243
|
-
// special case to retrive a gif service
|
244
302
|
function getServiceAddress(
|
245
|
-
|
246
|
-
VersionPart
|
247
|
-
) external view returns (address)
|
303
|
+
ObjectType serviceDomain,
|
304
|
+
VersionPart releaseVersion
|
305
|
+
) external view returns (address service)
|
248
306
|
{
|
249
|
-
|
250
|
-
return _service[serviceNameHash][majorVersion];
|
307
|
+
service = _service[releaseVersion][serviceDomain];
|
251
308
|
}
|
252
309
|
|
253
|
-
function
|
254
|
-
return
|
310
|
+
function getReleaseRegistryAddress() external view returns (address) {
|
311
|
+
return address(_releaseRegistry);
|
312
|
+
}
|
313
|
+
|
314
|
+
function getChainNftAddress() external view override returns (address) {
|
315
|
+
return address(_chainNft);
|
316
|
+
}
|
317
|
+
|
318
|
+
function getRegistryAdminAddress() external view returns (address) {
|
319
|
+
return address(_admin);
|
320
|
+
}
|
321
|
+
|
322
|
+
function getAuthority() external view returns (address) {
|
323
|
+
return _admin.authority();
|
255
324
|
}
|
256
325
|
|
257
326
|
function getOwner() public view returns (address owner) {
|
258
327
|
return ownerOf(address(this));
|
259
328
|
}
|
260
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
|
+
|
261
340
|
// Internals
|
262
341
|
|
263
|
-
|
342
|
+
/// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
|
343
|
+
function _register(ObjectInfo memory info)
|
264
344
|
internal
|
345
|
+
returns(NftId nftId)
|
265
346
|
{
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
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
|
+
}
|
275
366
|
}
|
276
|
-
|
277
|
-
|
278
|
-
|
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;
|
279
386
|
}
|
280
387
|
|
281
|
-
|
282
|
-
|
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);
|
283
395
|
|
284
|
-
|
396
|
+
assert(mintedTokenId == tokenId);
|
285
397
|
}
|
286
398
|
|
287
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:
|
288
402
|
function _getInterceptor(
|
289
403
|
bool isInterceptor,
|
404
|
+
ObjectType objectType,
|
290
405
|
address objectAddress,
|
291
406
|
bool parentIsInterceptor,
|
292
407
|
address parentObjectAddress
|
293
408
|
)
|
294
409
|
internal
|
295
|
-
|
410
|
+
pure
|
296
411
|
returns (address interceptor)
|
297
412
|
{
|
413
|
+
// no intercepting calls for stakes
|
414
|
+
if (objectType == STAKE()) {
|
415
|
+
return address(0);
|
416
|
+
}
|
417
|
+
|
298
418
|
if (objectAddress == address(0)) {
|
299
419
|
if (parentIsInterceptor) {
|
300
420
|
return parentObjectAddress;
|
@@ -314,135 +434,143 @@ contract Registry is
|
|
314
434
|
|
315
435
|
/// @dev protocol registration used to anchor the dip ecosystem relations
|
316
436
|
function _registerProtocol()
|
317
|
-
|
437
|
+
private
|
438
|
+
returns (NftId protocolNftId)
|
318
439
|
{
|
319
440
|
uint256 protocolId = _chainNft.PROTOCOL_NFT_ID();
|
320
|
-
|
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
|
+
});
|
321
452
|
|
322
453
|
_chainNft.mint(NFT_LOCK_ADDRESS, protocolId);
|
323
|
-
|
324
|
-
_info[protocolNftId] = ObjectInfo(
|
325
|
-
protocolNftId,
|
326
|
-
zeroNftId(), // parent
|
327
|
-
PROTOCOL(),
|
328
|
-
false, // isInterceptor
|
329
|
-
address(0), // objectAddress
|
330
|
-
NFT_LOCK_ADDRESS,// initialOwner
|
331
|
-
""
|
332
|
-
);
|
333
454
|
}
|
334
455
|
|
335
456
|
/// @dev registry registration
|
336
457
|
/// might also register the global registry when not on mainnet
|
337
|
-
function _registerRegistry(
|
338
|
-
|
458
|
+
function _registerRegistry()
|
459
|
+
private
|
460
|
+
returns (NftId registryNftId)
|
339
461
|
{
|
340
462
|
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
341
|
-
|
342
|
-
|
463
|
+
registryNftId = NftIdLib.toNftId(registryId);
|
343
464
|
NftId parentNftId;
|
344
465
|
|
345
466
|
if(registryId != _chainNft.GLOBAL_REGISTRY_ID())
|
346
467
|
{// we're not the global registry
|
347
468
|
_registerGlobalRegistry();
|
348
|
-
parentNftId = toNftId(_chainNft.GLOBAL_REGISTRY_ID());
|
469
|
+
parentNftId = NftIdLib.toNftId(_chainNft.GLOBAL_REGISTRY_ID());
|
349
470
|
}
|
350
471
|
else
|
351
472
|
{// we are global registry
|
352
|
-
parentNftId =
|
473
|
+
parentNftId = _protocolNftId;
|
353
474
|
}
|
354
475
|
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
);
|
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
|
+
|
366
486
|
_nftIdByAddress[address(this)] = registryNftId;
|
367
|
-
|
487
|
+
_chainNft.mint(NFT_LOCK_ADDRESS, registryId);
|
368
488
|
}
|
369
489
|
|
370
|
-
|
371
490
|
/// @dev global registry registration for non mainnet registries
|
372
491
|
function _registerGlobalRegistry()
|
373
|
-
|
492
|
+
private
|
374
493
|
{
|
375
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
|
+
});
|
376
506
|
|
377
507
|
_chainNft.mint(NFT_LOCK_ADDRESS, globalRegistryId);
|
378
|
-
|
379
|
-
NftId globalRegistryNftId = toNftId(globalRegistryId);
|
380
|
-
|
381
|
-
_info[globalRegistryNftId] = ObjectInfo(
|
382
|
-
globalRegistryNftId,
|
383
|
-
toNftId(_chainNft.PROTOCOL_NFT_ID()), // parent
|
384
|
-
REGISTRY(),
|
385
|
-
false, // isInterceptor
|
386
|
-
address(0), // objectAddress
|
387
|
-
NFT_LOCK_ADDRESS, // initialOwner
|
388
|
-
"" // data
|
389
|
-
);
|
390
508
|
}
|
391
|
-
|
392
|
-
function
|
393
|
-
|
509
|
+
// depends on _registryNftId and _stakingAddress
|
510
|
+
function _registerStaking()
|
511
|
+
private
|
512
|
+
returns (NftId stakingNftId)
|
394
513
|
{
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
bytes32 serviceNameHash = keccak256(abi.encode(serviceName));
|
414
|
-
_service[serviceNameHash][VersionLib.toVersionPart(GIF_MAJOR_VERSION_AT_DEPLOYMENT)] = msg.sender;
|
415
|
-
_string[serviceNftId] = serviceName;
|
416
|
-
_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);
|
417
532
|
}
|
418
533
|
|
419
534
|
/// @dev defines which object - parent types relations are allowed to register
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
// 3) DO NOT use REGISTRY as object type
|
424
|
-
// 2) DO NOT use PROTOCOL and "zeroObjectType"
|
425
|
-
function _setupValidObjectParentCombinations()
|
426
|
-
internal
|
535
|
+
/// EACH object type MUST have only one parent type across ALL mappings
|
536
|
+
function _setupValidCoreTypesAndCombinations()
|
537
|
+
private
|
427
538
|
{
|
428
|
-
|
429
|
-
|
430
|
-
|
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
|
+
}
|
431
556
|
|
432
|
-
// registry
|
433
|
-
|
557
|
+
// contracts with registry parent
|
558
|
+
_coreContractCombinations[STAKING()][REGISTRY()] = true; // only for chain staking contract
|
559
|
+
_coreContractCombinations[INSTANCE()][REGISTRY()] = true;
|
434
560
|
|
435
|
-
// instance
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
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;
|
440
566
|
|
441
|
-
//
|
442
|
-
|
567
|
+
// objects with coponent parents
|
568
|
+
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
569
|
+
_coreObjectCombinations[POLICY()][PRODUCT()] = true;
|
570
|
+
_coreObjectCombinations[BUNDLE()][POOL()] = true;
|
443
571
|
|
444
|
-
//
|
445
|
-
|
446
|
-
|
572
|
+
// staking
|
573
|
+
_coreObjectCombinations[STAKE()][PROTOCOL()] = true;
|
574
|
+
_coreObjectCombinations[STAKE()][INSTANCE()] = true;
|
447
575
|
}
|
448
576
|
}
|