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