@etherisc/gif-next 0.0.2-b28f7c7-340 → 0.0.2-b3a8633-027
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 +32 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +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/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +184 -253
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +77 -324
- 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 +296 -2011
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +198 -74
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +422 -2807
- 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 +825 -379
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +263 -282
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -119
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3591 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
- 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 +8 -116
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +160 -218
- 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/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +254 -153
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +90 -46
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +191 -296
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +294 -60
- 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/{components/Distribution.sol/Distribution.json → product/BasicProduct.sol/BasicProduct.json} +370 -400
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +131 -94
- 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/{instance/service → product}/IPolicyService.sol/IPolicyService.json +194 -80
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +86 -159
- 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/{instance/service → product}/IProductService.sol/IProductService.json +11 -61
- 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/{components → product}/Product.sol/Product.json +338 -248
- 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 +40 -16
- 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 +172 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -125
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +559 -44
- 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 +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +367 -73
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1140 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +139 -85
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +27 -95
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +110 -84
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
- 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 +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +17 -6
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +33 -7
- 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/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- 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/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- 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/{components → distribution}/Distribution.sol +162 -159
- package/contracts/distribution/DistributionService.sol +288 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +48 -0
- package/contracts/{instance/service → distribution}/IDistributionService.sol +24 -38
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +30 -31
- package/contracts/instance/IInstance.sol +55 -67
- package/contracts/instance/IInstanceService.sol +50 -30
- package/contracts/instance/Instance.sol +160 -233
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +173 -59
- package/contracts/instance/InstanceService.sol +280 -332
- package/contracts/instance/InstanceServiceManager.sol +12 -26
- 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/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
- package/contracts/instance/module/IAccess.sol +4 -12
- package/contracts/instance/module/IBundle.sol +6 -9
- package/contracts/instance/module/IComponents.sol +21 -10
- package/contracts/instance/module/IDistribution.sol +7 -6
- package/contracts/instance/module/IPolicy.sol +28 -16
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +157 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +284 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +35 -22
- package/contracts/pool/IPoolComponent.sol +52 -0
- package/contracts/{instance/service → pool}/IPoolService.sol +72 -21
- 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/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +416 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +15 -35
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/{instance/service → product}/IPolicyService.sol +37 -31
- 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/{components → product}/Product.sol +209 -110
- package/contracts/product/ProductService.sol +99 -0
- package/contracts/product/ProductServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +34 -26
- 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 +58 -26
- package/contracts/registry/IRegistryService.sol +42 -41
- package/contracts/registry/Registry.sol +261 -161
- package/contracts/registry/RegistryAdmin.sol +447 -0
- package/contracts/registry/RegistryService.sol +69 -99
- package/contracts/registry/RegistryServiceManager.sol +23 -32
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +533 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- 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 +1 -1
- package/contracts/{components → shared}/IComponent.sol +23 -29
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +2 -2
- package/contracts/shared/IPolicyHolder.sol +29 -10
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +12 -3
- 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 +3 -16
- package/contracts/shared/PolicyHolder.sol +40 -19
- package/contracts/shared/Registerable.sol +13 -12
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/Service.sol +32 -22
- package/contracts/shared/TokenHandler.sol +27 -2
- package/contracts/staking/IStaking.sol +167 -0
- package/contracts/staking/IStakingService.sol +160 -0
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +510 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +50 -0
- package/contracts/staking/StakingReader.sol +183 -0
- package/contracts/staking/StakingService.sol +411 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +128 -0
- package/contracts/{types → type}/Blocknumber.sol +20 -3
- package/contracts/{types → type}/ClaimId.sol +25 -2
- package/contracts/{types → type}/Fee.sol +24 -22
- package/contracts/{types → type}/NftId.sol +14 -16
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +271 -0
- package/contracts/{types → type}/PayoutId.sol +33 -5
- package/contracts/{types → type}/Referral.sol +1 -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/{types → type}/Seconds.sol +27 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +33 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +10 -1
- package/contracts/{types → type}/UFixed.sol +6 -0
- package/contracts/{types → type}/Version.sol +4 -2
- package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
- package/package.json +8 -5
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- 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/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
- 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/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 -383
- 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 -596
- 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 -104
- 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/Amount.sol/AmountLib.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
- 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/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
- 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 -288
- 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 -166
- 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/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
- 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/Seconds.sol/SecondsLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
- 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/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
- package/contracts/components/Component.sol +0 -253
- package/contracts/components/IDistributionComponent.sol +0 -71
- package/contracts/components/IPoolComponent.sol +0 -113
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/components/Pool.sol +0 -303
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/Cloneable.sol +0 -51
- package/contracts/instance/InstanceAccessManager.sol +0 -527
- package/contracts/instance/base/ComponentService.sol +0 -121
- package/contracts/instance/base/KeyValueStore.sol +0 -180
- package/contracts/instance/base/Lifecycle.sol +0 -109
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -350
- package/contracts/instance/service/BundleService.sol +0 -431
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -151
- package/contracts/instance/service/DistributionService.sol +0 -435
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IClaimService.sol +0 -61
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -362
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -303
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -210
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/registry/ReleaseManager.sol +0 -324
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/Amount.sol +0 -60
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -157
- package/contracts/types/RoleId.sol +0 -97
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -2,34 +2,52 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
|
+
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
7
|
+
import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
|
5
8
|
|
6
|
-
import {NftId,
|
7
|
-
import {VersionPart} from "../
|
8
|
-
import {ObjectType, PROTOCOL, REGISTRY,
|
9
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
10
|
+
import {VersionPart} from "../type/Version.sol";
|
11
|
+
import {ObjectType, PROTOCOL, REGISTRY, SERVICE, INSTANCE, STAKE, STAKING, PRODUCT, DISTRIBUTION, DISTRIBUTOR, ORACLE, POOL, POLICY, BUNDLE} from "../type/ObjectType.sol";
|
9
12
|
|
10
13
|
import {ChainNft} from "./ChainNft.sol";
|
11
14
|
import {IRegistry} from "./IRegistry.sol";
|
12
|
-
import {
|
15
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
16
|
+
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
17
|
+
import {TokenRegistry} from "./TokenRegistry.sol";
|
18
|
+
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
19
|
+
import {SidenetContract} from "../shared/MainnetId.sol";
|
13
20
|
|
14
|
-
|
21
|
+
/// @dev IMPORTANT
|
15
22
|
// Each NFT minted by registry is accosiated with:
|
16
23
|
// 1) NFT owner
|
17
24
|
// 2) registred contract OR object stored in registered (parent) contract
|
18
|
-
//
|
19
|
-
// 1) IService address by
|
20
|
-
// 2)
|
21
|
-
// 3)
|
22
|
-
// 4) state object by regular service (POLICY, BUNDLE, STAKE)
|
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)
|
23
29
|
|
30
|
+
/// @title Chain Registry contract implementing IRegistry.
|
31
|
+
/// @notice See IRegistry for method details.
|
24
32
|
contract Registry is
|
33
|
+
SidenetContract,
|
34
|
+
Initializable,
|
35
|
+
AccessManaged,
|
25
36
|
IRegistry
|
26
37
|
{
|
27
|
-
|
38
|
+
using NftIdLib for NftId;
|
39
|
+
|
40
|
+
address public NFT_LOCK_ADDRESS = address(0x1);
|
28
41
|
uint256 public constant REGISTRY_TOKEN_SEQUENCE_ID = 2;
|
42
|
+
uint256 public constant STAKING_TOKEN_SEQUENCE_ID = 3;
|
29
43
|
string public constant EMPTY_URI = "";
|
30
44
|
|
31
|
-
|
32
|
-
|
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;
|
33
51
|
|
34
52
|
mapping(VersionPart version => mapping(ObjectType serviceDomain => address)) private _service;
|
35
53
|
|
@@ -41,162 +59,200 @@ contract Registry is
|
|
41
59
|
mapping(ObjectType objectType => mapping(
|
42
60
|
ObjectType parentType => bool)) private _coreObjectCombinations;
|
43
61
|
|
44
|
-
|
45
|
-
ChainNft
|
62
|
+
RegistryAdmin public immutable _admin;
|
63
|
+
ChainNft public immutable _chainNft;
|
46
64
|
|
47
|
-
|
65
|
+
NftId public immutable _protocolNftId;
|
66
|
+
NftId public immutable _globalRegistryNftId;
|
67
|
+
NftId public immutable _registryNftId;
|
68
|
+
NftId public _stakingNftId;
|
48
69
|
|
49
|
-
|
50
|
-
|
51
|
-
|
70
|
+
address public _tokenRegistryAddress;
|
71
|
+
address public _stakingAddress;
|
72
|
+
ReleaseRegistry public _releaseRegistry;
|
73
|
+
|
74
|
+
modifier onlyDeployer() {
|
75
|
+
if (msg.sender != _deployer) {
|
76
|
+
revert ErrorRegistryCallerNotDeployer();
|
52
77
|
}
|
53
78
|
_;
|
54
79
|
}
|
55
80
|
|
56
|
-
modifier
|
57
|
-
if(msg.sender != address(
|
58
|
-
revert
|
81
|
+
modifier onlyReleaseRegistry() {
|
82
|
+
if(msg.sender != address(_releaseRegistry)) {
|
83
|
+
revert ErrorRegistryCallerNotReleaseRegistry();
|
59
84
|
}
|
60
85
|
_;
|
61
86
|
}
|
62
87
|
|
63
|
-
|
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())
|
64
93
|
{
|
65
|
-
|
66
|
-
|
94
|
+
_deployer = msg.sender;
|
95
|
+
_admin = admin;
|
67
96
|
// deploy NFT
|
68
97
|
_chainNft = new ChainNft(address(this));
|
69
98
|
|
70
99
|
// initial registry setup
|
71
|
-
_registerProtocol();
|
72
|
-
|
100
|
+
_protocolNftId = _registerProtocol();
|
101
|
+
_globalRegistryNftId = _registerGlobalRegistry(globalRegistry);
|
102
|
+
_registryNftId = _registerRegistry();
|
73
103
|
|
74
104
|
// set object types and object parent relations
|
75
105
|
_setupValidCoreTypesAndCombinations();
|
76
106
|
}
|
77
107
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
108
|
+
|
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
|
82
115
|
)
|
83
116
|
external
|
84
|
-
|
85
|
-
|
117
|
+
initializer()
|
118
|
+
onlyDeployer()
|
86
119
|
{
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
}
|
91
|
-
if(info.parentType != REGISTRY()) {
|
92
|
-
revert();
|
93
|
-
}
|
94
|
-
info.initialOwner == NFT_LOCK_ADDRESS <- if services are access managed
|
95
|
-
*/
|
120
|
+
_releaseRegistry = ReleaseRegistry(releaseRegistry);
|
121
|
+
_tokenRegistryAddress = tokenRegistry;
|
122
|
+
_stakingAddress = staking;
|
96
123
|
|
97
|
-
|
98
|
-
revert ServiceAlreadyRegistered(info.objectAddress);
|
99
|
-
}
|
100
|
-
|
101
|
-
_service[version][domain] = info.objectAddress; // nftId;
|
102
|
-
|
103
|
-
nftId = _register(info);
|
104
|
-
|
105
|
-
emit LogServiceRegistration(version, domain);
|
124
|
+
_stakingNftId = _registerStaking();
|
106
125
|
}
|
107
126
|
|
127
|
+
/// @inheritdoc IRegistry
|
108
128
|
function register(ObjectInfo memory info)
|
109
129
|
external
|
110
|
-
|
130
|
+
restricted
|
111
131
|
returns(NftId nftId)
|
112
132
|
{
|
113
133
|
ObjectType objectType = info.objectType;
|
114
134
|
ObjectType parentType = _info[info.parentNftId].objectType;
|
115
135
|
|
116
|
-
//
|
117
|
-
|
118
|
-
if(objectType == SERVICE()) {
|
119
|
-
revert ServiceRegistration();
|
120
|
-
}
|
121
|
-
|
122
|
-
// only valid core types combinations
|
123
|
-
if(info.objectAddress == address(0))
|
124
|
-
{
|
136
|
+
// check type combinations for core objects
|
137
|
+
if(info.objectAddress == address(0)) {
|
125
138
|
if(_coreObjectCombinations[objectType][parentType] == false) {
|
126
|
-
revert
|
139
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
127
140
|
}
|
128
141
|
}
|
129
|
-
|
130
|
-
{
|
142
|
+
// check type combinations for contract objects
|
143
|
+
else {
|
131
144
|
if(_coreContractCombinations[objectType][parentType] == false) {
|
132
|
-
revert
|
145
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
133
146
|
}
|
134
147
|
}
|
135
148
|
|
136
149
|
nftId = _register(info);
|
137
150
|
}
|
138
151
|
|
152
|
+
|
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);
|
198
|
+
}
|
199
|
+
|
200
|
+
|
201
|
+
/// @inheritdoc IRegistry
|
139
202
|
function registerWithCustomType(ObjectInfo memory info)
|
140
203
|
external
|
141
|
-
|
204
|
+
restricted
|
142
205
|
returns(NftId nftId)
|
143
206
|
{
|
144
207
|
ObjectType objectType = info.objectType;
|
145
208
|
ObjectType parentType = _info[info.parentNftId].objectType;
|
146
209
|
|
147
210
|
if(_coreTypes[objectType]) {
|
148
|
-
revert
|
211
|
+
revert ErrorRegistryCoreTypeRegistration();
|
149
212
|
}
|
150
213
|
|
151
214
|
if(
|
152
215
|
parentType == PROTOCOL() ||
|
153
|
-
parentType == REGISTRY() ||
|
154
216
|
parentType == SERVICE()
|
155
217
|
) {
|
156
|
-
revert
|
218
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
157
219
|
}
|
158
220
|
|
159
|
-
_register(info);
|
221
|
+
nftId = _register(info);
|
160
222
|
}
|
161
223
|
|
162
224
|
|
163
225
|
/// @dev earliest GIF major version
|
164
226
|
function getInitialVersion() external view returns (VersionPart) {
|
165
|
-
return
|
227
|
+
return _releaseRegistry.getInitialVersion();
|
166
228
|
}
|
167
229
|
|
168
|
-
|
169
|
-
// need to be thought trough, not yet clear if necessary
|
170
|
-
// need to answer question: what is the latest version during the upgrade process?
|
171
|
-
// likely setting up a new gif version does not fit into a single tx
|
172
|
-
// in this case we might want to have a period where the latest version is
|
173
|
-
// in the process of being set up while the latest active version is 1 major release smaller
|
174
|
-
/// @dev latest GIF major version (might not yet be active)
|
230
|
+
/// @dev next GIF release version to be released
|
175
231
|
function getNextVersion() external view returns (VersionPart) {
|
176
|
-
return
|
232
|
+
return _releaseRegistry.getNextVersion();
|
177
233
|
}
|
178
234
|
|
179
235
|
/// @dev latest active GIF release version
|
180
236
|
function getLatestVersion() external view returns (VersionPart) {
|
181
|
-
return
|
237
|
+
return _releaseRegistry.getLatestVersion();
|
182
238
|
}
|
183
239
|
|
184
240
|
function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory) {
|
185
|
-
return
|
241
|
+
return _releaseRegistry.getReleaseInfo(version);
|
186
242
|
}
|
187
243
|
|
188
244
|
function getObjectCount() external view returns (uint256) {
|
189
245
|
return _chainNft.totalSupply();
|
190
246
|
}
|
191
247
|
|
192
|
-
function getReleaseManagerAddress() external view returns (address) {
|
193
|
-
return address(_releaseManager);
|
194
|
-
}
|
195
|
-
|
196
248
|
function getNftId() external view returns (NftId nftId) {
|
197
249
|
return _registryNftId;
|
198
250
|
}
|
199
251
|
|
252
|
+
function getProtocolNftId() external view returns (NftId nftId) {
|
253
|
+
return _protocolNftId;
|
254
|
+
}
|
255
|
+
|
200
256
|
function getNftId(address object) external view returns (NftId id) {
|
201
257
|
return _nftIdByAddress[object];
|
202
258
|
}
|
@@ -234,9 +290,19 @@ contract Registry is
|
|
234
290
|
return _info[objectParentNftId].objectType == INSTANCE();
|
235
291
|
}
|
236
292
|
|
237
|
-
function
|
293
|
+
function isActiveRelease(VersionPart version) external view returns (bool)
|
238
294
|
{
|
239
|
-
return
|
295
|
+
return _releaseRegistry.isActiveRelease(version);
|
296
|
+
}
|
297
|
+
|
298
|
+
function getStakingAddress() external view returns (address staking) {
|
299
|
+
//return getObjectInfo(_stakingNftId).objectAddress;
|
300
|
+
//return _info[_stakingNftId].objectAddress;
|
301
|
+
return _stakingAddress;
|
302
|
+
}
|
303
|
+
|
304
|
+
function getTokenRegistryAddress() external view returns (address tokenRegistry) {
|
305
|
+
return _tokenRegistryAddress;
|
240
306
|
}
|
241
307
|
|
242
308
|
function getServiceAddress(
|
@@ -244,16 +310,25 @@ contract Registry is
|
|
244
310
|
VersionPart releaseVersion
|
245
311
|
) external view returns (address service)
|
246
312
|
{
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
313
|
+
service = _service[releaseVersion][serviceDomain];
|
314
|
+
}
|
315
|
+
|
316
|
+
function getReleaseRegistryAddress() external view returns (address) {
|
317
|
+
return address(_releaseRegistry);
|
251
318
|
}
|
252
319
|
|
253
320
|
function getChainNftAddress() external view override returns (address) {
|
254
321
|
return address(_chainNft);
|
255
322
|
}
|
256
323
|
|
324
|
+
function getRegistryAdminAddress() external view returns (address) {
|
325
|
+
return address(_admin);
|
326
|
+
}
|
327
|
+
|
328
|
+
function getAuthority() external view returns (address) {
|
329
|
+
return _admin.authority();
|
330
|
+
}
|
331
|
+
|
257
332
|
function getOwner() public view returns (address owner) {
|
258
333
|
return ownerOf(address(this));
|
259
334
|
}
|
@@ -271,65 +346,81 @@ contract Registry is
|
|
271
346
|
// Internals
|
272
347
|
|
273
348
|
/// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
|
274
|
-
// TODO registration of precompile addresses
|
275
349
|
function _register(ObjectInfo memory info)
|
276
350
|
internal
|
277
351
|
returns(NftId nftId)
|
278
352
|
{
|
279
353
|
ObjectType objectType = info.objectType;
|
354
|
+
bool isInterceptor = info.isInterceptor;
|
355
|
+
address objectAddress = info.objectAddress;
|
356
|
+
address owner = info.initialOwner;
|
357
|
+
|
280
358
|
NftId parentNftId = info.parentNftId;
|
281
359
|
ObjectInfo memory parentInfo = _info[parentNftId];
|
282
360
|
ObjectType parentType = parentInfo.objectType; // see function header
|
283
361
|
address parentAddress = parentInfo.objectAddress;
|
284
362
|
|
285
363
|
// parent is contract -> need to check? -> check before minting
|
364
|
+
// special case: staking: to protocol possible as well
|
286
365
|
// special case: global registry nft as parent when not on mainnet -> global registry address is 0
|
287
366
|
// special case: when parentNftId == _chainNft.mint(), check for zero parent address before mint
|
288
367
|
// special case: when parentNftId == _chainNft.mint() && objectAddress == initialOwner
|
289
|
-
if(
|
290
|
-
|
368
|
+
if(objectType != STAKE()) {
|
369
|
+
if(parentAddress == address(0)) {
|
370
|
+
revert ErrorRegistryParentAddressZero();
|
371
|
+
}
|
291
372
|
}
|
292
373
|
|
293
|
-
address
|
294
|
-
|
295
|
-
|
374
|
+
address interceptorAddress = _getInterceptor(
|
375
|
+
isInterceptor,
|
376
|
+
objectType,
|
377
|
+
objectAddress,
|
378
|
+
parentInfo.isInterceptor,
|
379
|
+
parentAddress);
|
296
380
|
|
381
|
+
uint256 tokenId = _chainNft.getNextTokenId();
|
382
|
+
nftId = NftIdLib.toNftId(tokenId);
|
297
383
|
info.nftId = nftId;
|
298
384
|
_info[nftId] = info;
|
299
385
|
|
300
|
-
if(
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
if(_nftIdByAddress[contractAddress].gtz()) {
|
305
|
-
revert ContractAlreadyRegistered(contractAddress);
|
386
|
+
if(objectAddress > address(0)) {
|
387
|
+
if(_nftIdByAddress[objectAddress].gtz()) {
|
388
|
+
revert ErrorRegistryContractAlreadyRegistered(objectAddress);
|
306
389
|
}
|
307
390
|
|
308
|
-
_nftIdByAddress[
|
391
|
+
_nftIdByAddress[objectAddress] = nftId;
|
309
392
|
}
|
310
393
|
|
311
|
-
emit LogRegistration(nftId, parentNftId, objectType,
|
394
|
+
emit LogRegistration(nftId, parentNftId, objectType, isInterceptor, objectAddress, owner);
|
312
395
|
|
313
396
|
// calls nft receiver(1) and interceptor(2)
|
314
397
|
uint256 mintedTokenId = _chainNft.mint(
|
315
|
-
|
316
|
-
|
398
|
+
owner,
|
399
|
+
interceptorAddress,
|
317
400
|
EMPTY_URI);
|
318
|
-
|
319
|
-
|
401
|
+
|
402
|
+
assert(mintedTokenId == tokenId);
|
320
403
|
}
|
321
404
|
|
322
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:
|
323
408
|
function _getInterceptor(
|
324
409
|
bool isInterceptor,
|
410
|
+
ObjectType objectType,
|
325
411
|
address objectAddress,
|
326
412
|
bool parentIsInterceptor,
|
327
413
|
address parentObjectAddress
|
328
414
|
)
|
329
415
|
internal
|
330
|
-
|
416
|
+
pure
|
331
417
|
returns (address interceptor)
|
332
418
|
{
|
419
|
+
// no intercepting calls for stakes
|
420
|
+
if (objectType == STAKE()) {
|
421
|
+
return address(0);
|
422
|
+
}
|
423
|
+
|
333
424
|
if (objectAddress == address(0)) {
|
334
425
|
if (parentIsInterceptor) {
|
335
426
|
return parentObjectAddress;
|
@@ -350,13 +441,14 @@ contract Registry is
|
|
350
441
|
/// @dev protocol registration used to anchor the dip ecosystem relations
|
351
442
|
function _registerProtocol()
|
352
443
|
private
|
444
|
+
returns (NftId protocolNftId)
|
353
445
|
{
|
354
446
|
uint256 protocolId = _chainNft.PROTOCOL_NFT_ID();
|
355
|
-
|
447
|
+
protocolNftId = NftIdLib.toNftId(protocolId);
|
356
448
|
|
357
449
|
_info[protocolNftId] = ObjectInfo({
|
358
450
|
nftId: protocolNftId,
|
359
|
-
parentNftId:
|
451
|
+
parentNftId: NftIdLib.zero(),
|
360
452
|
objectType: PROTOCOL(),
|
361
453
|
isInterceptor: false,
|
362
454
|
objectAddress: address(0),
|
@@ -367,101 +459,109 @@ contract Registry is
|
|
367
459
|
_chainNft.mint(NFT_LOCK_ADDRESS, protocolId);
|
368
460
|
}
|
369
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
|
+
|
370
484
|
/// @dev registry registration
|
371
|
-
/// might also register the global registry when not on mainnet
|
372
485
|
function _registerRegistry()
|
373
|
-
|
486
|
+
internal
|
487
|
+
virtual
|
488
|
+
returns (NftId registryNftId)
|
374
489
|
{
|
375
490
|
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
376
|
-
|
377
|
-
NftId parentNftId;
|
378
|
-
|
379
|
-
if(registryId != _chainNft.GLOBAL_REGISTRY_ID())
|
380
|
-
{// we're not the global registry
|
381
|
-
_registerGlobalRegistry();
|
382
|
-
parentNftId = toNftId(_chainNft.GLOBAL_REGISTRY_ID());
|
383
|
-
}
|
384
|
-
else
|
385
|
-
{// we are global registry
|
386
|
-
parentNftId = toNftId(_chainNft.PROTOCOL_NFT_ID());
|
387
|
-
}
|
491
|
+
registryNftId = NftIdLib.toNftId(registryId);
|
388
492
|
|
389
493
|
_info[registryNftId] = ObjectInfo({
|
390
494
|
nftId: registryNftId,
|
391
|
-
parentNftId:
|
495
|
+
parentNftId: _globalRegistryNftId,
|
392
496
|
objectType: REGISTRY(),
|
393
497
|
isInterceptor: false,
|
394
498
|
objectAddress: address(this),
|
395
499
|
initialOwner: NFT_LOCK_ADDRESS,
|
396
500
|
data: ""
|
397
501
|
});
|
398
|
-
_nftIdByAddress[address(this)] = registryNftId;
|
399
|
-
_registryNftId = registryNftId;
|
400
502
|
|
503
|
+
_nftIdByAddress[address(this)] = registryNftId;
|
401
504
|
_chainNft.mint(NFT_LOCK_ADDRESS, registryId);
|
402
505
|
}
|
403
506
|
|
404
|
-
/// @dev
|
405
|
-
function
|
507
|
+
/// @dev staking registration
|
508
|
+
function _registerStaking()
|
406
509
|
private
|
510
|
+
onlyInitializing()
|
511
|
+
returns (NftId stakingNftId)
|
407
512
|
{
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
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(),
|
415
521
|
isInterceptor: false,
|
416
|
-
objectAddress:
|
417
|
-
initialOwner:
|
418
|
-
data: ""
|
522
|
+
objectAddress: _stakingAddress,
|
523
|
+
initialOwner: stakingOwner,
|
524
|
+
data: ""
|
419
525
|
});
|
420
526
|
|
421
|
-
|
527
|
+
_nftIdByAddress[_stakingAddress] = stakingNftId;
|
528
|
+
_chainNft.mint(stakingOwner, stakingId);
|
422
529
|
}
|
423
530
|
|
424
531
|
/// @dev defines which object - parent types relations are allowed to register
|
425
|
-
|
426
|
-
// 1) EACH object type MUST have only one parent type across ALL mappings
|
427
|
-
// 2) DO NOT use object type (e.g. POLCY, BUNDLE, STAKE) as parent type
|
428
|
-
// 3) DO NOT use REGISTRY as object type
|
429
|
-
// 2) DO NOT use PROTOCOL and "zeroObjectType"
|
532
|
+
/// EACH object type MUST have only one parent type across ALL mappings
|
430
533
|
function _setupValidCoreTypesAndCombinations()
|
431
|
-
private
|
534
|
+
private
|
432
535
|
{
|
433
536
|
_coreTypes[REGISTRY()] = true;
|
434
537
|
_coreTypes[SERVICE()] = true;
|
435
|
-
_coreTypes[TOKEN()] = true;
|
436
538
|
_coreTypes[INSTANCE()] = true;
|
437
539
|
_coreTypes[PRODUCT()] = true;
|
438
540
|
_coreTypes[POOL()] = true;
|
439
541
|
_coreTypes[DISTRIBUTION()] = true;
|
542
|
+
_coreTypes[DISTRIBUTOR()] = true;
|
543
|
+
_coreTypes[ORACLE()] = true;
|
440
544
|
_coreTypes[POLICY()] = true;
|
441
545
|
_coreTypes[BUNDLE()] = true;
|
546
|
+
_coreTypes[STAKING()] = true;
|
442
547
|
_coreTypes[STAKE()] = true;
|
443
|
-
|
444
|
-
// registry as parent, ONLY registry owner
|
445
|
-
//_coreContractCombinations[REGISTRY()][REGISTRY()] = true; // only for global regstry
|
446
|
-
_coreContractCombinations[TOKEN()][REGISTRY()] = true;
|
447
|
-
//_coreContractCombinations[SERVICE()][REGISTRY()] = true;// do not need it here -> registerService() registers exactly this combination
|
448
548
|
|
449
|
-
//
|
549
|
+
_coreContractCombinations[STAKING()][REGISTRY()] = true; // only for chain staking contract
|
450
550
|
_coreContractCombinations[INSTANCE()][REGISTRY()] = true;
|
451
551
|
|
452
|
-
// instance
|
552
|
+
// components with instance parent
|
453
553
|
_coreContractCombinations[PRODUCT()][INSTANCE()] = true;
|
454
554
|
_coreContractCombinations[DISTRIBUTION()][INSTANCE()] = true;
|
455
555
|
_coreContractCombinations[ORACLE()][INSTANCE()] = true;
|
456
556
|
_coreContractCombinations[POOL()][INSTANCE()] = true;
|
457
557
|
|
558
|
+
// objects with coponent parents
|
458
559
|
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
459
|
-
|
460
|
-
// product as parent, ONLY approved
|
461
560
|
_coreObjectCombinations[POLICY()][PRODUCT()] = true;
|
462
|
-
|
463
|
-
// pool as parent, ONLY approved
|
464
561
|
_coreObjectCombinations[BUNDLE()][POOL()] = true;
|
465
|
-
|
562
|
+
|
563
|
+
// staking
|
564
|
+
_coreObjectCombinations[STAKE()][PROTOCOL()] = true;
|
565
|
+
_coreObjectCombinations[STAKE()][INSTANCE()] = true;
|
466
566
|
}
|
467
567
|
}
|