@etherisc/gif-next 0.0.2-e769e2e-077 → 0.0.2-e802d97-477
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 +2 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +19 -13
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +79 -73
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +114 -56
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +11 -5
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +7 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +25 -6
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +12 -22
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +47 -20
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +126 -30
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +195 -64
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +77 -63
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -34
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +246 -104
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- 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/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +2 -2
- 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/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +10 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +55 -41
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +102 -40
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +7 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +11 -5
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +22 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +18 -12
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +56 -35
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +95 -37
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +39 -25
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +96 -34
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +81 -67
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +115 -53
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +7 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +7 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +7 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +7 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +11 -5
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +7 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +59 -45
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +104 -42
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +69 -55
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +109 -47
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +18 -12
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +25 -19
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +87 -29
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +150 -53
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +187 -67
- 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 +328 -103
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +197 -72
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +87 -39
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +752 -148
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +2 -2
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +185 -135
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +18 -12
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +92 -63
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +102 -46
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +7 -1
- 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/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +11 -5
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +14 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +11 -5
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +0 -10
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +7 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- 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 +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +18 -12
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +10 -20
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +6 -6
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +13 -7
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +64 -16
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +15 -9
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +7 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +424 -593
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +497 -49
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +598 -627
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +149 -48
- 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 +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +593 -74
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +119 -29
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -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 +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +40 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +28 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +15 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +76 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
- package/contracts/distribution/Distribution.sol +2 -4
- package/contracts/distribution/DistributionService.sol +3 -2
- package/contracts/distribution/DistributionServiceManager.sol +9 -18
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +1 -1
- package/contracts/instance/IInstance.sol +11 -6
- package/contracts/instance/IInstanceService.sol +3 -5
- package/contracts/instance/Instance.sol +29 -21
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +192 -151
- package/contracts/instance/InstanceReader.sol +30 -6
- package/contracts/instance/InstanceService.sol +69 -55
- package/contracts/instance/InstanceServiceManager.sol +10 -20
- package/contracts/instance/InstanceStore.sol +64 -42
- package/contracts/instance/base/BalanceStore.sol +1 -1
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/IOracle.sol +20 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +145 -0
- package/contracts/oracle/OracleService.sol +277 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BundleService.sol +6 -23
- package/contracts/pool/BundleServiceManager.sol +9 -18
- package/contracts/pool/IBundleService.sol +1 -1
- package/contracts/pool/IPoolService.sol +4 -1
- package/contracts/pool/PoolService.sol +45 -13
- package/contracts/pool/PoolServiceManager.sol +9 -18
- package/contracts/product/ApplicationService.sol +6 -5
- package/contracts/product/ApplicationServiceManager.sol +9 -6
- package/contracts/product/ClaimService.sol +13 -7
- package/contracts/product/ClaimServiceManager.sol +9 -6
- package/contracts/product/IApplicationService.sol +1 -1
- package/contracts/product/IClaimService.sol +7 -1
- package/contracts/product/IPolicyService.sol +1 -1
- package/contracts/product/IPricingService.sol +1 -1
- package/contracts/product/IProductService.sol +1 -1
- package/contracts/product/PolicyService.sol +10 -6
- package/contracts/product/PolicyServiceManager.sol +9 -21
- package/contracts/product/PricingService.sol +10 -9
- package/contracts/product/PricingServiceManager.sol +9 -18
- package/contracts/product/Product.sol +1 -1
- package/contracts/product/ProductService.sol +7 -5
- package/contracts/product/ProductServiceManager.sol +9 -21
- package/contracts/registry/ChainNft.sol +1 -0
- package/contracts/registry/IRegistry.sol +37 -24
- package/contracts/registry/IRegistryService.sol +26 -36
- package/contracts/registry/Registry.sol +164 -117
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +22 -83
- package/contracts/registry/RegistryServiceManager.sol +21 -23
- package/contracts/registry/ReleaseManager.sol +448 -223
- package/contracts/registry/TokenRegistry.sol +187 -59
- package/contracts/shared/AccessManagerCustom.sol +736 -0
- package/contracts/shared/AccessManagerExtended.sol +470 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +8 -13
- package/contracts/shared/ComponentService.sol +35 -13
- package/contracts/shared/ComponentVerifyingService.sol +13 -7
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/shared/IComponent.sol +3 -7
- package/contracts/shared/IComponentService.sol +11 -0
- package/contracts/shared/IKeyValueStore.sol +1 -1
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +6 -1
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +1 -2
- package/contracts/shared/KeyValueStore.sol +24 -66
- package/contracts/shared/Lifecycle.sol +11 -2
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +2 -13
- package/contracts/shared/PolicyHolder.sol +21 -13
- package/contracts/shared/ProxyManager.sol +31 -1
- package/contracts/shared/Service.sol +1 -1
- package/contracts/staking/IStaking.sol +127 -36
- package/contracts/staking/IStakingService.sol +83 -39
- package/contracts/staking/StakeManagerLib.sol +179 -0
- package/contracts/staking/Staking.sol +432 -93
- package/contracts/staking/StakingManager.sol +22 -14
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +245 -39
- package/contracts/staking/StakingServiceManager.sol +8 -4
- package/contracts/staking/StakingStore.sol +572 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +15 -1
- package/contracts/type/Blocknumber.sol +14 -2
- package/contracts/type/Fee.sol +1 -1
- package/contracts/type/NftId.sol +9 -4
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +12 -9
- package/contracts/type/Referral.sol +1 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +16 -8
- package/contracts/type/Seconds.sol +27 -0
- package/contracts/type/StateId.sol +27 -2
- package/contracts/type/Timestamp.sol +6 -2
- package/contracts/type/Version.sol +1 -1
- package/package.json +3 -3
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -308
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/registry/RegistryAccessManager.sol +0 -213
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
@@ -2,6 +2,9 @@
|
|
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
|
+
|
7
|
+
import {InitializableCustom} from "../shared/InitializableCustom.sol";
|
5
8
|
|
6
9
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
7
10
|
import {VersionPart} from "../type/Version.sol";
|
@@ -9,8 +12,10 @@ import {ObjectType, PROTOCOL, REGISTRY, TOKEN, SERVICE, INSTANCE, STAKE, STAKING
|
|
9
12
|
|
10
13
|
import {ChainNft} from "./ChainNft.sol";
|
11
14
|
import {IRegistry} from "./IRegistry.sol";
|
15
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
12
16
|
import {ReleaseManager} from "./ReleaseManager.sol";
|
13
17
|
import {TokenRegistry} from "./TokenRegistry.sol";
|
18
|
+
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
14
19
|
|
15
20
|
// IMPORTANT
|
16
21
|
// Each NFT minted by registry is accosiated with:
|
@@ -23,9 +28,10 @@ import {TokenRegistry} from "./TokenRegistry.sol";
|
|
23
28
|
// 4) state object by regular service (POLICY, BUNDLE, STAKE)
|
24
29
|
|
25
30
|
contract Registry is
|
31
|
+
InitializableCustom,
|
26
32
|
IRegistry
|
27
33
|
{
|
28
|
-
address public
|
34
|
+
address public NFT_LOCK_ADDRESS = address(0x1);
|
29
35
|
uint256 public constant REGISTRY_TOKEN_SEQUENCE_ID = 2;
|
30
36
|
uint256 public constant STAKING_TOKEN_SEQUENCE_ID = 3;
|
31
37
|
string public constant EMPTY_URI = "";
|
@@ -43,89 +49,64 @@ contract Registry is
|
|
43
49
|
mapping(ObjectType objectType => mapping(
|
44
50
|
ObjectType parentType => bool)) private _coreObjectCombinations;
|
45
51
|
|
46
|
-
|
47
|
-
ChainNft
|
52
|
+
RegistryAdmin public immutable _admin;
|
53
|
+
ChainNft public immutable _chainNft;
|
54
|
+
|
55
|
+
NftId public immutable _protocolNftId;
|
56
|
+
NftId public immutable _registryNftId;
|
57
|
+
NftId public _stakingNftId;
|
48
58
|
|
49
|
-
|
50
|
-
address
|
51
|
-
|
59
|
+
address public _tokenRegistryAddress;
|
60
|
+
address public _stakingAddress;
|
61
|
+
ReleaseManager public _releaseManager;
|
52
62
|
|
53
63
|
modifier onlyRegistryService() {
|
54
64
|
if(!_releaseManager.isActiveRegistryService(msg.sender)) {
|
55
|
-
revert
|
65
|
+
revert ErrorRegistryCallerNotRegistryService();
|
56
66
|
}
|
57
67
|
_;
|
58
68
|
}
|
59
69
|
|
70
|
+
|
60
71
|
modifier onlyReleaseManager() {
|
61
72
|
if(msg.sender != address(_releaseManager)) {
|
62
|
-
revert
|
73
|
+
revert ErrorRegistryCallerNotReleaseManager();
|
63
74
|
}
|
64
75
|
_;
|
65
76
|
}
|
66
77
|
|
67
|
-
constructor() {
|
68
|
-
_releaseManager = ReleaseManager(msg.sender);
|
69
78
|
|
79
|
+
constructor(RegistryAdmin admin)
|
80
|
+
InitializableCustom()
|
81
|
+
{
|
82
|
+
_admin = admin;
|
70
83
|
// deploy NFT
|
71
84
|
_chainNft = new ChainNft(address(this));
|
72
85
|
|
73
86
|
// initial registry setup
|
74
|
-
_registerProtocol();
|
75
|
-
_registerRegistry();
|
87
|
+
_protocolNftId = _registerProtocol();
|
88
|
+
_registryNftId = _registerRegistry();
|
76
89
|
|
77
90
|
// set object types and object parent relations
|
78
91
|
_setupValidCoreTypesAndCombinations();
|
79
92
|
}
|
80
93
|
|
81
94
|
|
82
|
-
|
83
|
-
|
95
|
+
/// @dev wires release manager and token to registry (this contract).
|
96
|
+
/// MUST be called by release manager.
|
97
|
+
function initialize(
|
98
|
+
address releaseManager,
|
99
|
+
address tokenRegistry,
|
100
|
+
address staking
|
84
101
|
)
|
85
102
|
external
|
86
|
-
|
103
|
+
initializer()
|
87
104
|
{
|
88
|
-
|
89
|
-
revert TokenRegistryAlreadySet(tokenRegistry);
|
90
|
-
}
|
91
|
-
|
92
|
-
if (address(tokenRegistry) == address(0)) {
|
93
|
-
revert TokenRegistryZero();
|
94
|
-
}
|
95
|
-
|
105
|
+
_releaseManager = ReleaseManager(releaseManager);
|
96
106
|
_tokenRegistryAddress = tokenRegistry;
|
97
|
-
|
107
|
+
_stakingAddress = staking;
|
98
108
|
|
99
|
-
|
100
|
-
function registerStaking(
|
101
|
-
address stakingAddress,
|
102
|
-
address stakingOwner
|
103
|
-
)
|
104
|
-
external
|
105
|
-
onlyReleaseManager
|
106
|
-
returns(NftId stakingNftId)
|
107
|
-
{
|
108
|
-
// staking contract for same chain may only be registered once
|
109
|
-
if (_stakingAddress != address(0)) {
|
110
|
-
revert StakingAlreadyRegistered(_stakingAddress);
|
111
|
-
}
|
112
|
-
|
113
|
-
_stakingAddress = stakingAddress;
|
114
|
-
uint256 stakingId = _chainNft.calculateTokenId(STAKING_TOKEN_SEQUENCE_ID);
|
115
|
-
stakingNftId = NftIdLib.toNftId(stakingId);
|
116
|
-
|
117
|
-
_nftIdByAddress[_stakingAddress] = stakingNftId;
|
118
|
-
_info[stakingNftId] = ObjectInfo({
|
119
|
-
nftId: stakingNftId,
|
120
|
-
parentNftId: _registryNftId,
|
121
|
-
objectType: STAKING(),
|
122
|
-
isInterceptor: false,
|
123
|
-
objectAddress: _stakingAddress,
|
124
|
-
initialOwner: stakingOwner,
|
125
|
-
data: ""
|
126
|
-
});
|
127
|
-
|
128
|
-
_chainNft.mint(stakingOwner, stakingId);
|
109
|
+
_stakingNftId = _registerStaking();
|
129
110
|
}
|
130
111
|
|
131
112
|
function registerService(
|
@@ -137,7 +118,16 @@ contract Registry is
|
|
137
118
|
onlyReleaseManager
|
138
119
|
returns(NftId nftId)
|
139
120
|
{
|
121
|
+
address service = info.objectAddress;
|
140
122
|
/* must be guaranteed by release manager
|
123
|
+
if(service == address(0)) {
|
124
|
+
revert();
|
125
|
+
}
|
126
|
+
|
127
|
+
if(version.eqz()) {
|
128
|
+
revert();
|
129
|
+
}
|
130
|
+
|
141
131
|
if(info.objectType != SERVICE()) {
|
142
132
|
revert();
|
143
133
|
}
|
@@ -147,11 +137,15 @@ contract Registry is
|
|
147
137
|
info.initialOwner == NFT_LOCK_ADDRESS <- if services are access managed
|
148
138
|
*/
|
149
139
|
|
150
|
-
if(
|
151
|
-
revert
|
140
|
+
if(domain.eqz()) {
|
141
|
+
revert ErrorRegistryDomainZero(service);
|
152
142
|
}
|
153
143
|
|
154
|
-
_service[version][domain]
|
144
|
+
if(_service[version][domain] > address(0)) {
|
145
|
+
revert ErrorRegistryDomainAlreadyRegistered(service, version, domain);
|
146
|
+
}
|
147
|
+
|
148
|
+
_service[version][domain] = service;
|
155
149
|
|
156
150
|
nftId = _register(info);
|
157
151
|
|
@@ -166,23 +160,17 @@ contract Registry is
|
|
166
160
|
ObjectType objectType = info.objectType;
|
167
161
|
ObjectType parentType = _info[info.parentNftId].objectType;
|
168
162
|
|
169
|
-
// TODO do not need it here -> SERVICE is no longer part of _coreContractCombinations
|
170
|
-
// no service registrations
|
171
|
-
if(objectType == SERVICE()) {
|
172
|
-
revert ServiceRegistration();
|
173
|
-
}
|
174
|
-
|
175
163
|
// only valid core types combinations
|
176
164
|
if(info.objectAddress == address(0))
|
177
165
|
{
|
178
166
|
if(_coreObjectCombinations[objectType][parentType] == false) {
|
179
|
-
revert
|
167
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
180
168
|
}
|
181
169
|
}
|
182
170
|
else
|
183
171
|
{
|
184
172
|
if(_coreContractCombinations[objectType][parentType] == false) {
|
185
|
-
revert
|
173
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
186
174
|
}
|
187
175
|
}
|
188
176
|
|
@@ -198,7 +186,7 @@ contract Registry is
|
|
198
186
|
ObjectType parentType = _info[info.parentNftId].objectType;
|
199
187
|
|
200
188
|
if(_coreTypes[objectType]) {
|
201
|
-
revert
|
189
|
+
revert ErrorRegistryCoreTypeRegistration();
|
202
190
|
}
|
203
191
|
|
204
192
|
if(
|
@@ -206,7 +194,7 @@ contract Registry is
|
|
206
194
|
parentType == REGISTRY() ||
|
207
195
|
parentType == SERVICE()
|
208
196
|
) {
|
209
|
-
revert
|
197
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
210
198
|
}
|
211
199
|
|
212
200
|
_register(info);
|
@@ -218,13 +206,7 @@ contract Registry is
|
|
218
206
|
return _releaseManager.getInitialVersion();
|
219
207
|
}
|
220
208
|
|
221
|
-
|
222
|
-
// need to be thought trough, not yet clear if necessary
|
223
|
-
// need to answer question: what is the latest version during the upgrade process?
|
224
|
-
// likely setting up a new gif version does not fit into a single tx
|
225
|
-
// in this case we might want to have a period where the latest version is
|
226
|
-
// in the process of being set up while the latest active version is 1 major release smaller
|
227
|
-
/// @dev latest GIF major version (might not yet be active)
|
209
|
+
/// @dev next GIF release version to be released
|
228
210
|
function getNextVersion() external view returns (VersionPart) {
|
229
211
|
return _releaseManager.getNextVersion();
|
230
212
|
}
|
@@ -242,14 +224,14 @@ contract Registry is
|
|
242
224
|
return _chainNft.totalSupply();
|
243
225
|
}
|
244
226
|
|
245
|
-
function getReleaseManagerAddress() external view returns (address) {
|
246
|
-
return address(_releaseManager);
|
247
|
-
}
|
248
|
-
|
249
227
|
function getNftId() external view returns (NftId nftId) {
|
250
228
|
return _registryNftId;
|
251
229
|
}
|
252
230
|
|
231
|
+
function getProtocolNftId() external view returns (NftId nftId) {
|
232
|
+
return _protocolNftId;
|
233
|
+
}
|
234
|
+
|
253
235
|
function getNftId(address object) external view returns (NftId id) {
|
254
236
|
return _nftIdByAddress[object];
|
255
237
|
}
|
@@ -287,12 +269,14 @@ contract Registry is
|
|
287
269
|
return _info[objectParentNftId].objectType == INSTANCE();
|
288
270
|
}
|
289
271
|
|
290
|
-
function
|
272
|
+
function isActiveRelease(VersionPart version) external view returns (bool)
|
291
273
|
{
|
292
|
-
return _releaseManager.
|
274
|
+
return _releaseManager.isActiveRelease(version);
|
293
275
|
}
|
294
276
|
|
295
277
|
function getStakingAddress() external view returns (address staking) {
|
278
|
+
//return getObjectInfo(_stakingNftId).objectAddress;
|
279
|
+
//return _info[_stakingNftId].objectAddress;
|
296
280
|
return _stakingAddress;
|
297
281
|
}
|
298
282
|
|
@@ -305,16 +289,29 @@ contract Registry is
|
|
305
289
|
VersionPart releaseVersion
|
306
290
|
) external view returns (address service)
|
307
291
|
{
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
292
|
+
service = _service[releaseVersion][serviceDomain];
|
293
|
+
}
|
294
|
+
|
295
|
+
function getReleaseAccessManagerAddress(VersionPart version) external view returns (address) {
|
296
|
+
return address(_releaseManager.getReleaseAccessManager(version));
|
297
|
+
}
|
298
|
+
|
299
|
+
function getReleaseManagerAddress() external view returns (address) {
|
300
|
+
return address(_releaseManager);
|
312
301
|
}
|
313
302
|
|
314
303
|
function getChainNftAddress() external view override returns (address) {
|
315
304
|
return address(_chainNft);
|
316
305
|
}
|
317
306
|
|
307
|
+
function getRegistryAdminAddress() external view returns (address) {
|
308
|
+
return address(_admin);
|
309
|
+
}
|
310
|
+
|
311
|
+
function getAuthority() external view returns (address) {
|
312
|
+
return _admin.authority();
|
313
|
+
}
|
314
|
+
|
318
315
|
function getOwner() public view returns (address owner) {
|
319
316
|
return ownerOf(address(this));
|
320
317
|
}
|
@@ -338,59 +335,76 @@ contract Registry is
|
|
338
335
|
returns(NftId nftId)
|
339
336
|
{
|
340
337
|
ObjectType objectType = info.objectType;
|
338
|
+
bool isInterceptor = info.isInterceptor;
|
339
|
+
address objectAddress = info.objectAddress;
|
340
|
+
address owner = info.initialOwner;
|
341
|
+
|
341
342
|
NftId parentNftId = info.parentNftId;
|
342
343
|
ObjectInfo memory parentInfo = _info[parentNftId];
|
343
344
|
ObjectType parentType = parentInfo.objectType; // see function header
|
344
345
|
address parentAddress = parentInfo.objectAddress;
|
345
346
|
|
346
347
|
// parent is contract -> need to check? -> check before minting
|
348
|
+
// special case: staking: to protocol possible as well
|
347
349
|
// special case: global registry nft as parent when not on mainnet -> global registry address is 0
|
348
350
|
// special case: when parentNftId == _chainNft.mint(), check for zero parent address before mint
|
349
351
|
// special case: when parentNftId == _chainNft.mint() && objectAddress == initialOwner
|
350
|
-
if(
|
351
|
-
|
352
|
+
if(objectType != STAKE()) {
|
353
|
+
if(parentAddress == address(0)) {
|
354
|
+
revert ErrorRegistryParentAddressZero();
|
355
|
+
}
|
352
356
|
}
|
353
357
|
|
354
|
-
address
|
358
|
+
address interceptorAddress = _getInterceptor(
|
359
|
+
isInterceptor,
|
360
|
+
objectType,
|
361
|
+
objectAddress,
|
362
|
+
parentInfo.isInterceptor,
|
363
|
+
parentAddress);
|
364
|
+
|
355
365
|
uint256 tokenId = _chainNft.getNextTokenId();
|
356
366
|
nftId = NftIdLib.toNftId(tokenId);
|
357
|
-
|
358
367
|
info.nftId = nftId;
|
359
368
|
_info[nftId] = info;
|
360
369
|
|
361
|
-
if(
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
if(_nftIdByAddress[contractAddress].gtz()) {
|
366
|
-
revert ContractAlreadyRegistered(contractAddress);
|
370
|
+
if(objectAddress > address(0)) {
|
371
|
+
if(_nftIdByAddress[objectAddress].gtz()) {
|
372
|
+
revert ErrorRegistryContractAlreadyRegistered(objectAddress);
|
367
373
|
}
|
368
374
|
|
369
|
-
_nftIdByAddress[
|
375
|
+
_nftIdByAddress[objectAddress] = nftId;
|
370
376
|
}
|
371
377
|
|
372
|
-
emit LogRegistration(nftId, parentNftId, objectType,
|
378
|
+
emit LogRegistration(nftId, parentNftId, objectType, isInterceptor, objectAddress, owner);
|
373
379
|
|
374
380
|
// calls nft receiver(1) and interceptor(2)
|
375
381
|
uint256 mintedTokenId = _chainNft.mint(
|
376
|
-
|
377
|
-
|
382
|
+
owner,
|
383
|
+
interceptorAddress,
|
378
384
|
EMPTY_URI);
|
379
|
-
|
380
|
-
|
385
|
+
|
386
|
+
assert(mintedTokenId == tokenId);
|
381
387
|
}
|
382
388
|
|
383
389
|
/// @dev obtain interceptor address for this nft if applicable, address(0) otherwise
|
390
|
+
/// special case: STAKES (parent may be any type) -> no intercept call
|
391
|
+
/// default case:
|
384
392
|
function _getInterceptor(
|
385
393
|
bool isInterceptor,
|
394
|
+
ObjectType objectType,
|
386
395
|
address objectAddress,
|
387
396
|
bool parentIsInterceptor,
|
388
397
|
address parentObjectAddress
|
389
398
|
)
|
390
399
|
internal
|
391
|
-
|
400
|
+
pure
|
392
401
|
returns (address interceptor)
|
393
402
|
{
|
403
|
+
// no intercepting calls for stakes
|
404
|
+
if (objectType == STAKE()) {
|
405
|
+
return address(0);
|
406
|
+
}
|
407
|
+
|
394
408
|
if (objectAddress == address(0)) {
|
395
409
|
if (parentIsInterceptor) {
|
396
410
|
return parentObjectAddress;
|
@@ -411,9 +425,10 @@ contract Registry is
|
|
411
425
|
/// @dev protocol registration used to anchor the dip ecosystem relations
|
412
426
|
function _registerProtocol()
|
413
427
|
private
|
428
|
+
returns (NftId protocolNftId)
|
414
429
|
{
|
415
430
|
uint256 protocolId = _chainNft.PROTOCOL_NFT_ID();
|
416
|
-
|
431
|
+
protocolNftId = NftIdLib.toNftId(protocolId);
|
417
432
|
|
418
433
|
_info[protocolNftId] = ObjectInfo({
|
419
434
|
nftId: protocolNftId,
|
@@ -432,9 +447,10 @@ contract Registry is
|
|
432
447
|
/// might also register the global registry when not on mainnet
|
433
448
|
function _registerRegistry()
|
434
449
|
private
|
450
|
+
returns (NftId registryNftId)
|
435
451
|
{
|
436
452
|
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
437
|
-
|
453
|
+
registryNftId = NftIdLib.toNftId(registryId);
|
438
454
|
NftId parentNftId;
|
439
455
|
|
440
456
|
if(registryId != _chainNft.GLOBAL_REGISTRY_ID())
|
@@ -444,7 +460,7 @@ contract Registry is
|
|
444
460
|
}
|
445
461
|
else
|
446
462
|
{// we are global registry
|
447
|
-
parentNftId =
|
463
|
+
parentNftId = _protocolNftId;
|
448
464
|
}
|
449
465
|
|
450
466
|
_info[registryNftId] = ObjectInfo({
|
@@ -456,9 +472,8 @@ contract Registry is
|
|
456
472
|
initialOwner: NFT_LOCK_ADDRESS,
|
457
473
|
data: ""
|
458
474
|
});
|
459
|
-
_nftIdByAddress[address(this)] = registryNftId;
|
460
|
-
_registryNftId = registryNftId;
|
461
475
|
|
476
|
+
_nftIdByAddress[address(this)] = registryNftId;
|
462
477
|
_chainNft.mint(NFT_LOCK_ADDRESS, registryId);
|
463
478
|
}
|
464
479
|
|
@@ -481,13 +496,36 @@ contract Registry is
|
|
481
496
|
|
482
497
|
_chainNft.mint(NFT_LOCK_ADDRESS, globalRegistryId);
|
483
498
|
}
|
499
|
+
// depends on _registryNftId and _stakingAddress
|
500
|
+
function _registerStaking()
|
501
|
+
private
|
502
|
+
returns (NftId stakingNftId)
|
503
|
+
{
|
504
|
+
address stakingOwner = IRegisterable(_stakingAddress).getOwner();
|
505
|
+
uint256 stakingId = _chainNft.calculateTokenId(STAKING_TOKEN_SEQUENCE_ID);
|
506
|
+
stakingNftId = NftIdLib.toNftId(stakingId);
|
507
|
+
|
508
|
+
_info[stakingNftId] = ObjectInfo({
|
509
|
+
nftId: stakingNftId,
|
510
|
+
parentNftId: _registryNftId,
|
511
|
+
objectType: STAKING(),
|
512
|
+
isInterceptor: false,
|
513
|
+
objectAddress: _stakingAddress,
|
514
|
+
initialOwner: stakingOwner,
|
515
|
+
data: ""
|
516
|
+
});
|
517
|
+
|
518
|
+
_nftIdByAddress[_stakingAddress] = stakingNftId;
|
519
|
+
// reverts if nftId was already minted
|
520
|
+
_chainNft.mint(stakingOwner, stakingId);
|
521
|
+
}
|
484
522
|
|
485
523
|
/// @dev defines which object - parent types relations are allowed to register
|
486
524
|
// IMPORTANT:
|
487
525
|
// 1) EACH object type MUST have only one parent type across ALL mappings
|
488
526
|
// 2) DO NOT use object type (e.g. POLCY, BUNDLE, STAKE) as parent type
|
489
527
|
// 3) DO NOT use REGISTRY as object type
|
490
|
-
// 2) DO NOT use PROTOCOL and "
|
528
|
+
// 2) DO NOT use PROTOCOL and "ObjectTypeLib.zero"
|
491
529
|
function _setupValidCoreTypesAndCombinations()
|
492
530
|
private
|
493
531
|
{
|
@@ -498,32 +536,41 @@ contract Registry is
|
|
498
536
|
_coreTypes[PRODUCT()] = true;
|
499
537
|
_coreTypes[POOL()] = true;
|
500
538
|
_coreTypes[DISTRIBUTION()] = true;
|
539
|
+
_coreTypes[DISTRIBUTOR()] = true;
|
540
|
+
_coreTypes[ORACLE()] = true;
|
501
541
|
_coreTypes[POLICY()] = true;
|
502
542
|
_coreTypes[BUNDLE()] = true;
|
503
543
|
_coreTypes[STAKING()] = true;
|
504
544
|
_coreTypes[STAKE()] = true;
|
505
|
-
|
506
|
-
|
545
|
+
|
546
|
+
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
547
|
+
if(registryId == _chainNft.GLOBAL_REGISTRY_ID()) {
|
548
|
+
// we are global registry
|
549
|
+
// object is registry from different chain
|
550
|
+
// parent is global registry, this contract
|
551
|
+
_coreContractCombinations[REGISTRY()][REGISTRY()] = true; // only for global regstry
|
552
|
+
//_coreObjectCombinations[REGISTRY()][REGISTRY()] = true;
|
553
|
+
} else {
|
554
|
+
// we are not global registry
|
555
|
+
// object is local registry, this contract
|
556
|
+
// parent is global registry, object with 0 address or registry from mainnet???
|
557
|
+
}
|
507
558
|
_coreContractCombinations[STAKING()][REGISTRY()] = true; // only for chain staking contract
|
508
559
|
_coreContractCombinations[TOKEN()][REGISTRY()] = true;
|
509
560
|
//_coreContractCombinations[SERVICE()][REGISTRY()] = true;// do not need it here -> registerService() registers exactly this combination
|
510
|
-
|
511
|
-
// registry as parent, ONLY approved
|
512
561
|
_coreContractCombinations[INSTANCE()][REGISTRY()] = true;
|
513
562
|
|
514
|
-
// instance as parent, ONLY approved
|
515
563
|
_coreContractCombinations[PRODUCT()][INSTANCE()] = true;
|
516
564
|
_coreContractCombinations[DISTRIBUTION()][INSTANCE()] = true;
|
517
565
|
_coreContractCombinations[ORACLE()][INSTANCE()] = true;
|
518
566
|
_coreContractCombinations[POOL()][INSTANCE()] = true;
|
519
567
|
|
520
568
|
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
521
|
-
|
522
|
-
// product as parent, ONLY approved
|
523
569
|
_coreObjectCombinations[POLICY()][PRODUCT()] = true;
|
524
|
-
|
525
|
-
// pool as parent, ONLY approved
|
526
570
|
_coreObjectCombinations[BUNDLE()][POOL()] = true;
|
527
|
-
|
571
|
+
|
572
|
+
// staking
|
573
|
+
_coreObjectCombinations[STAKE()][PROTOCOL()] = true;
|
574
|
+
_coreObjectCombinations[STAKE()][INSTANCE()] = true;
|
528
575
|
}
|
529
576
|
}
|