@etherisc/gif-next 0.0.2-d5522f6-712 → 0.0.2-d59d51e-694
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 +8 -13
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1410 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1343 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +799 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +969 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +808 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +73 -83
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +275 -1359
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +306 -216
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +446 -2536
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +479 -178
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +132 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +485 -337
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +466 -366
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +348 -93
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3468 -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 +6 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +58 -75
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ISetup.sol/ISetup.json → IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1091 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +723 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +257 -293
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1148 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1044 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1559 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1411 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +719 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +820 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +699 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1264 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +787 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +218 -191
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +237 -307
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IPricingService.sol/IPricingService.json} +251 -257
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +442 -228
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → product/IProductService.sol/IProductService.json} +123 -139
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1132 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +731 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +969 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +755 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1391 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +673 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +675 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +269 -15
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +343 -226
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +396 -35
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +95 -58
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +491 -288
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +334 -80
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +699 -94
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +354 -98
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → shared/Component.sol/Component.json} +409 -361
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1461 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +765 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +188 -200
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IComponent.sol/IComponent.json} +268 -125
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +854 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +239 -215
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +51 -21
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +27 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -34
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +35 -0
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +71 -165
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1030 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +581 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
- 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 +109 -29
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +310 -61
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -53
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +173 -153
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
- 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/shared/Versionable.sol/Versionable.json +2 -152
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1435 -0
- package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → staking/IStakingManager.sol/IStakingManager.json} +10 -10
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +884 -0
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +357 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +402 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2002 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +748 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +368 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1207 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +698 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1690 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +494 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -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/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
- 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/{types → type}/Key32.sol/Key32Lib.json +3 -3
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +185 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
- 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/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +174 -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/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
- package/contracts/distribution/Distribution.sol +263 -0
- package/contracts/distribution/DistributionService.sol +298 -0
- package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +15 -12
- package/contracts/distribution/IDistributionComponent.sol +66 -0
- package/contracts/distribution/IDistributionService.sol +81 -0
- package/contracts/instance/BundleManager.sol +22 -25
- package/contracts/instance/IInstance.sol +60 -45
- package/contracts/instance/IInstanceService.sol +58 -15
- package/contracts/instance/Instance.sol +148 -196
- package/contracts/instance/InstanceAccessManager.sol +406 -166
- package/contracts/instance/InstanceAuthorizationsLib.sol +336 -0
- package/contracts/instance/InstanceReader.sol +136 -85
- package/contracts/instance/InstanceService.sol +259 -237
- package/contracts/instance/InstanceServiceManager.sol +12 -22
- package/contracts/instance/InstanceStore.sol +260 -0
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +16 -35
- package/contracts/instance/module/IAccess.sol +24 -18
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +52 -0
- package/contracts/instance/module/IDistribution.sol +7 -4
- package/contracts/instance/module/IPolicy.sol +56 -17
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/pool/IBundleService.sol +106 -0
- package/contracts/pool/IPoolComponent.sol +112 -0
- package/contracts/pool/IPoolService.sol +147 -0
- package/contracts/pool/Pool.sol +299 -0
- package/contracts/pool/PoolService.sol +424 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/ClaimService.sol +437 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +93 -0
- package/contracts/product/IPolicyService.sol +78 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +42 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +473 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +301 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/product/Product.sol +377 -0
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +15 -1
- package/contracts/registry/IRegistry.sol +57 -23
- package/contracts/registry/IRegistryService.sol +44 -34
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +295 -113
- package/contracts/registry/RegistryAccessManager.sol +105 -119
- package/contracts/registry/RegistryService.sol +115 -168
- package/contracts/registry/RegistryServiceManager.sol +28 -18
- package/contracts/registry/ReleaseManager.sol +419 -204
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +302 -58
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/shared/Component.sol +286 -0
- package/contracts/shared/ComponentService.sol +595 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +111 -0
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/IComponent.sol +74 -0
- package/contracts/shared/IComponentService.sol +91 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +14 -10
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +12 -11
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +6 -4
- package/contracts/shared/IVersionable.sol +5 -48
- package/contracts/shared/InstanceLinkedComponent.sol +145 -0
- package/contracts/shared/KeyValueStore.sol +130 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +28 -7
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +64 -80
- package/contracts/shared/PolicyHolder.sol +101 -0
- package/contracts/shared/ProxyManager.sol +126 -25
- package/contracts/shared/Registerable.sol +26 -41
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +41 -22
- package/contracts/shared/TokenHandler.sol +37 -6
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/staking/IStaking.sol +152 -0
- package/contracts/staking/IStakingManager.sol +15 -0
- package/contracts/staking/IStakingService.sol +162 -0
- package/contracts/staking/IStakingStore.sol +130 -0
- package/contracts/staking/StakeManagerLib.sol +156 -0
- package/contracts/staking/Staking.sol +502 -0
- package/contracts/staking/StakingManager.sol +65 -0
- package/contracts/staking/StakingReader.sol +147 -0
- package/contracts/staking/StakingService.sol +375 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +329 -0
- package/contracts/staking/TargetManagerLib.sol +179 -0
- package/contracts/type/Amount.sol +114 -0
- package/contracts/{types → type}/Blocknumber.sol +20 -2
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +32 -22
- package/contracts/{types → type}/NftId.sol +17 -11
- package/contracts/{types → type}/NftIdSet.sol +1 -1
- package/contracts/{types → type}/ObjectType.sol +26 -9
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +4 -0
- package/contracts/type/RoleId.sol +143 -0
- package/contracts/type/Seconds.sol +71 -0
- package/contracts/{types → type}/StateId.sol +24 -6
- package/contracts/{types → type}/Timestamp.sol +18 -13
- package/contracts/{types → type}/UFixed.sol +1 -0
- package/contracts/{types → type}/Version.sol +1 -0
- package/package.json +3 -3
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +0 -429
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1031
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -436
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -814
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -693
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -420
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
- 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/IPoolService.sol/IPoolService.json +0 -499
- 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 -1156
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -492
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -420
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
- 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/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/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/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- 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/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/contracts/components/BaseComponent.sol +0 -159
- package/contracts/components/Distribution.sol +0 -164
- package/contracts/components/IBaseComponent.sol +0 -34
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -66
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -272
- package/contracts/components/Product.sol +0 -301
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
- package/contracts/instance/IInstanceBase.sol +0 -26
- package/contracts/instance/InstanceBase.sol +0 -41
- package/contracts/instance/base/ComponentServiceBase.sol +0 -76
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/module/ISetup.sol +0 -46
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/BundleService.sol +0 -294
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ComponentOwnerService.sol +0 -315
- package/contracts/instance/service/DistributionService.sol +0 -120
- package/contracts/instance/service/IBundleService.sol +0 -44
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPolicyService.sol +0 -94
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -539
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -145
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -213
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- 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/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/RoleId.sol +0 -90
- /package/contracts/{types → type}/AddressSet.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -1,16 +1,18 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
|
5
|
+
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
4
6
|
|
5
|
-
import {NftId,
|
6
|
-
import {VersionPart} from "../
|
7
|
-
import {ObjectType, PROTOCOL, REGISTRY, TOKEN, SERVICE, INSTANCE, STAKE, PRODUCT, DISTRIBUTION, ORACLE, POOL, POLICY, BUNDLE} from "../
|
8
|
-
|
9
|
-
import {ERC165} from "../shared/ERC165.sol";
|
7
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
8
|
+
import {VersionPart} from "../type/Version.sol";
|
9
|
+
import {ObjectType, PROTOCOL, REGISTRY, TOKEN, SERVICE, INSTANCE, STAKE, STAKING, PRODUCT, DISTRIBUTION, DISTRIBUTOR, ORACLE, POOL, POLICY, BUNDLE} from "../type/ObjectType.sol";
|
10
10
|
|
11
11
|
import {ChainNft} from "./ChainNft.sol";
|
12
12
|
import {IRegistry} from "./IRegistry.sol";
|
13
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
13
14
|
import {ReleaseManager} from "./ReleaseManager.sol";
|
15
|
+
import {TokenRegistry} from "./TokenRegistry.sol";
|
14
16
|
|
15
17
|
// IMPORTANT
|
16
18
|
// Each NFT minted by registry is accosiated with:
|
@@ -23,60 +25,120 @@ import {ReleaseManager} from "./ReleaseManager.sol";
|
|
23
25
|
// 4) state object by regular service (POLICY, BUNDLE, STAKE)
|
24
26
|
|
25
27
|
contract Registry is
|
26
|
-
|
28
|
+
Initializable,
|
27
29
|
IRegistry
|
28
30
|
{
|
29
31
|
address public constant NFT_LOCK_ADDRESS = address(0x1);
|
30
32
|
uint256 public constant REGISTRY_TOKEN_SEQUENCE_ID = 2;
|
33
|
+
uint256 public constant STAKING_TOKEN_SEQUENCE_ID = 3;
|
31
34
|
string public constant EMPTY_URI = "";
|
32
35
|
|
33
|
-
mapping(NftId nftId => ObjectInfo info)
|
34
|
-
mapping(address object => NftId nftId)
|
36
|
+
mapping(NftId nftId => ObjectInfo info) private _info;
|
37
|
+
mapping(address object => NftId nftId) private _nftIdByAddress;
|
38
|
+
|
39
|
+
mapping(VersionPart version => mapping(ObjectType serviceDomain => address)) private _service;
|
35
40
|
|
36
|
-
mapping(
|
41
|
+
mapping(ObjectType objectType => bool) private _coreTypes;
|
37
42
|
|
38
43
|
mapping(ObjectType objectType => mapping(
|
39
|
-
ObjectType parentType => bool))
|
44
|
+
ObjectType parentType => bool)) private _coreContractCombinations;
|
40
45
|
|
41
46
|
mapping(ObjectType objectType => mapping(
|
42
|
-
ObjectType parentType => bool))
|
47
|
+
ObjectType parentType => bool)) private _coreObjectCombinations;
|
48
|
+
|
49
|
+
ChainNft private _chainNft;
|
50
|
+
|
51
|
+
address private _initializeOwner;
|
52
|
+
address private _tokenRegistryAddress;
|
53
|
+
address private _stakingAddress;
|
54
|
+
ReleaseManager private _releaseManager;
|
43
55
|
|
44
|
-
NftId
|
45
|
-
|
56
|
+
NftId private _protocolNftId;
|
57
|
+
NftId private _registryNftId;
|
46
58
|
|
47
|
-
ReleaseManager internal _releaseManager;
|
48
59
|
|
49
60
|
modifier onlyRegistryService() {
|
50
61
|
if(!_releaseManager.isActiveRegistryService(msg.sender)) {
|
51
|
-
revert
|
62
|
+
revert ErrorRegistryCallerNotRegistryService();
|
52
63
|
}
|
53
64
|
_;
|
54
65
|
}
|
55
66
|
|
67
|
+
|
56
68
|
modifier onlyReleaseManager() {
|
57
69
|
if(msg.sender != address(_releaseManager)) {
|
58
|
-
revert
|
70
|
+
revert ErrorRegistryCallerNotReleaseManager();
|
59
71
|
}
|
60
72
|
_;
|
61
73
|
}
|
62
74
|
|
63
|
-
|
64
|
-
{
|
65
|
-
|
75
|
+
|
76
|
+
constructor() {
|
77
|
+
// register deployer
|
78
|
+
_initializeOwner = msg.sender;
|
66
79
|
|
67
80
|
// deploy NFT
|
68
|
-
_chainNft = new ChainNft(address(this))
|
81
|
+
_chainNft = new ChainNft(address(this));
|
69
82
|
|
70
83
|
// initial registry setup
|
71
84
|
_registerProtocol();
|
72
85
|
_registerRegistry();
|
73
86
|
|
74
|
-
// set object parent relations
|
75
|
-
|
87
|
+
// set object types and object parent relations
|
88
|
+
_setupValidCoreTypesAndCombinations();
|
89
|
+
}
|
90
|
+
|
91
|
+
|
92
|
+
/// @dev wires release manager (as caller) and token to registry (this contract).
|
93
|
+
/// MUST be called by release manager.
|
94
|
+
function initialize(
|
95
|
+
address releaseManager,
|
96
|
+
address tokenRegistry
|
97
|
+
)
|
98
|
+
external
|
99
|
+
initializer()
|
100
|
+
{
|
101
|
+
if (msg.sender != _initializeOwner) {
|
102
|
+
revert ErrorRegistryCallerNotInitializeOwner(_initializeOwner, msg.sender);
|
103
|
+
}
|
104
|
+
|
105
|
+
_releaseManager = ReleaseManager(releaseManager);
|
106
|
+
_tokenRegistryAddress = tokenRegistry;
|
107
|
+
}
|
108
|
+
|
109
|
+
|
110
|
+
function registerStaking(
|
111
|
+
address stakingAddress
|
112
|
+
)
|
113
|
+
external
|
114
|
+
onlyReleaseManager()
|
115
|
+
{
|
116
|
+
// staking contract for same chain may only be registered once
|
117
|
+
if (_stakingAddress != address(0)) {
|
118
|
+
revert StakingAlreadyRegistered(_stakingAddress);
|
119
|
+
}
|
120
|
+
|
121
|
+
_stakingAddress = stakingAddress;
|
122
|
+
|
123
|
+
address stakingOwner = IRegisterable(stakingAddress).getOwner();
|
124
|
+
uint256 stakingId = _chainNft.calculateTokenId(STAKING_TOKEN_SEQUENCE_ID);
|
125
|
+
NftId stakingNftId = NftIdLib.toNftId(stakingId);
|
126
|
+
|
127
|
+
_nftIdByAddress[_stakingAddress] = stakingNftId;
|
128
|
+
_info[stakingNftId] = ObjectInfo({
|
129
|
+
nftId: stakingNftId,
|
130
|
+
parentNftId: _registryNftId,
|
131
|
+
objectType: STAKING(),
|
132
|
+
isInterceptor: false,
|
133
|
+
objectAddress: _stakingAddress,
|
134
|
+
initialOwner: stakingOwner,
|
135
|
+
data: ""
|
136
|
+
});
|
76
137
|
|
77
|
-
|
138
|
+
_chainNft.mint(stakingOwner, stakingId);
|
78
139
|
}
|
79
140
|
|
141
|
+
|
80
142
|
function registerService(
|
81
143
|
ObjectInfo memory info,
|
82
144
|
VersionPart version,
|
@@ -86,18 +148,34 @@ contract Registry is
|
|
86
148
|
onlyReleaseManager
|
87
149
|
returns(NftId nftId)
|
88
150
|
{
|
151
|
+
address service = info.objectAddress;
|
89
152
|
/* must be guaranteed by release manager
|
153
|
+
if(service == address(0)) {
|
154
|
+
revert();
|
155
|
+
}
|
156
|
+
|
157
|
+
if(version.eqz()) {
|
158
|
+
revert();
|
159
|
+
}
|
160
|
+
|
90
161
|
if(info.objectType != SERVICE()) {
|
91
162
|
revert();
|
92
163
|
}
|
93
|
-
info.
|
164
|
+
if(info.parentType != REGISTRY()) {
|
165
|
+
revert();
|
166
|
+
}
|
167
|
+
info.initialOwner == NFT_LOCK_ADDRESS <- if services are access managed
|
94
168
|
*/
|
95
169
|
|
96
|
-
if(
|
97
|
-
revert
|
170
|
+
if(domain.eqz()) {
|
171
|
+
revert ErrorRegistryDomainZero(service);
|
98
172
|
}
|
99
173
|
|
100
|
-
_service[version][domain]
|
174
|
+
if(_service[version][domain] > address(0)) {
|
175
|
+
revert ErrorRegistryDomainAlreadyRegistered(service, version, domain);
|
176
|
+
}
|
177
|
+
|
178
|
+
_service[version][domain] = service;
|
101
179
|
|
102
180
|
nftId = _register(info);
|
103
181
|
|
@@ -109,16 +187,52 @@ contract Registry is
|
|
109
187
|
onlyRegistryService
|
110
188
|
returns(NftId nftId)
|
111
189
|
{
|
112
|
-
|
113
|
-
|
114
|
-
|
190
|
+
ObjectType objectType = info.objectType;
|
191
|
+
ObjectType parentType = _info[info.parentNftId].objectType;
|
192
|
+
|
193
|
+
// only valid core types combinations
|
194
|
+
if(info.objectAddress == address(0))
|
195
|
+
{
|
196
|
+
if(_coreObjectCombinations[objectType][parentType] == false) {
|
197
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
198
|
+
}
|
199
|
+
}
|
200
|
+
else
|
201
|
+
{
|
202
|
+
if(_coreContractCombinations[objectType][parentType] == false) {
|
203
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
204
|
+
}
|
115
205
|
}
|
116
206
|
|
117
207
|
nftId = _register(info);
|
118
208
|
}
|
119
209
|
|
210
|
+
function registerWithCustomType(ObjectInfo memory info)
|
211
|
+
external
|
212
|
+
onlyRegistryService
|
213
|
+
returns(NftId nftId)
|
214
|
+
{
|
215
|
+
ObjectType objectType = info.objectType;
|
216
|
+
ObjectType parentType = _info[info.parentNftId].objectType;
|
217
|
+
|
218
|
+
if(_coreTypes[objectType]) {
|
219
|
+
revert ErrorRegistryCoreTypeRegistration();
|
220
|
+
}
|
221
|
+
|
222
|
+
if(
|
223
|
+
parentType == PROTOCOL() ||
|
224
|
+
parentType == REGISTRY() ||
|
225
|
+
parentType == SERVICE()
|
226
|
+
) {
|
227
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
228
|
+
}
|
229
|
+
|
230
|
+
_register(info);
|
231
|
+
}
|
232
|
+
|
233
|
+
|
120
234
|
/// @dev earliest GIF major version
|
121
|
-
function
|
235
|
+
function getInitialVersion() external view returns (VersionPart) {
|
122
236
|
return _releaseManager.getInitialVersion();
|
123
237
|
}
|
124
238
|
|
@@ -129,21 +243,20 @@ contract Registry is
|
|
129
243
|
// in this case we might want to have a period where the latest version is
|
130
244
|
// in the process of being set up while the latest active version is 1 major release smaller
|
131
245
|
/// @dev latest GIF major version (might not yet be active)
|
132
|
-
function
|
246
|
+
function getNextVersion() external view returns (VersionPart) {
|
133
247
|
return _releaseManager.getNextVersion();
|
134
248
|
}
|
135
249
|
|
136
250
|
/// @dev latest active GIF release version
|
137
|
-
function
|
251
|
+
function getLatestVersion() external view returns (VersionPart) {
|
138
252
|
return _releaseManager.getLatestVersion();
|
139
253
|
}
|
140
254
|
|
141
|
-
function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory)
|
142
|
-
{
|
255
|
+
function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory) {
|
143
256
|
return _releaseManager.getReleaseInfo(version);
|
144
257
|
}
|
145
258
|
|
146
|
-
function getObjectCount() external view
|
259
|
+
function getObjectCount() external view returns (uint256) {
|
147
260
|
return _chainNft.totalSupply();
|
148
261
|
}
|
149
262
|
|
@@ -151,11 +264,15 @@ contract Registry is
|
|
151
264
|
return _registryNftId;
|
152
265
|
}
|
153
266
|
|
154
|
-
function
|
267
|
+
function getProtocolNftId() external view returns (NftId nftId) {
|
268
|
+
return _protocolNftId;
|
269
|
+
}
|
270
|
+
|
271
|
+
function getNftId(address object) external view returns (NftId id) {
|
155
272
|
return _nftIdByAddress[object];
|
156
273
|
}
|
157
274
|
|
158
|
-
function ownerOf(NftId nftId) public view
|
275
|
+
function ownerOf(NftId nftId) public view returns (address) {
|
159
276
|
return _chainNft.ownerOf(nftId.toInt());
|
160
277
|
}
|
161
278
|
|
@@ -163,42 +280,78 @@ contract Registry is
|
|
163
280
|
return _chainNft.ownerOf(_nftIdByAddress[contractAddress].toInt());
|
164
281
|
}
|
165
282
|
|
166
|
-
function getObjectInfo(NftId nftId) external view
|
283
|
+
function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory) {
|
167
284
|
return _info[nftId];
|
168
285
|
}
|
169
286
|
|
170
|
-
function getObjectInfo(address object) external view
|
287
|
+
function getObjectInfo(address object) external view returns (ObjectInfo memory) {
|
171
288
|
return _info[_nftIdByAddress[object]];
|
172
289
|
}
|
173
290
|
|
174
|
-
function isRegistered(NftId nftId) public view
|
291
|
+
function isRegistered(NftId nftId) public view returns (bool) {
|
175
292
|
return _info[nftId].objectType.gtz();
|
176
293
|
}
|
177
294
|
|
178
|
-
function isRegistered(address object) external view
|
295
|
+
function isRegistered(address object) external view returns (bool) {
|
179
296
|
return _nftIdByAddress[object].gtz();
|
180
297
|
}
|
181
298
|
|
182
|
-
function isRegisteredService(address object) external view
|
183
|
-
return
|
299
|
+
function isRegisteredService(address object) external view returns (bool) {
|
300
|
+
return _info[_nftIdByAddress[object]].objectType == SERVICE();
|
301
|
+
}
|
302
|
+
|
303
|
+
function isRegisteredComponent(address object) external view returns (bool) {
|
304
|
+
NftId objectParentNftId = _info[_nftIdByAddress[object]].parentNftId;
|
305
|
+
return _info[objectParentNftId].objectType == INSTANCE();
|
306
|
+
}
|
307
|
+
|
308
|
+
function isValidRelease(VersionPart version) external view returns (bool)
|
309
|
+
{
|
310
|
+
return _releaseManager.isValidRelease(version);
|
311
|
+
}
|
312
|
+
|
313
|
+
function getStakingAddress() external view returns (address staking) {
|
314
|
+
return _stakingAddress;
|
315
|
+
}
|
316
|
+
|
317
|
+
function getTokenRegistryAddress() external view returns (address tokenRegistry) {
|
318
|
+
return _tokenRegistryAddress;
|
184
319
|
}
|
185
320
|
|
186
321
|
function getServiceAddress(
|
187
322
|
ObjectType serviceDomain,
|
188
323
|
VersionPart releaseVersion
|
189
|
-
) external view returns (address)
|
324
|
+
) external view returns (address service)
|
190
325
|
{
|
191
|
-
|
326
|
+
service = _service[releaseVersion][serviceDomain];
|
192
327
|
}
|
193
328
|
|
194
|
-
function
|
195
|
-
return
|
329
|
+
function getReleaseAccessManagerAddress(VersionPart version) external view returns (address) {
|
330
|
+
return address(_releaseManager.getReleaseAccessManager(version));
|
331
|
+
}
|
332
|
+
|
333
|
+
function getReleaseManagerAddress() external view returns (address) {
|
334
|
+
return address(_releaseManager);
|
335
|
+
}
|
336
|
+
|
337
|
+
function getChainNftAddress() external view override returns (address) {
|
338
|
+
return address(_chainNft);
|
196
339
|
}
|
197
340
|
|
198
341
|
function getOwner() public view returns (address owner) {
|
199
342
|
return ownerOf(address(this));
|
200
343
|
}
|
201
344
|
|
345
|
+
// IERC165
|
346
|
+
|
347
|
+
function supportsInterface(bytes4 interfaceId) external pure returns (bool) {
|
348
|
+
if(interfaceId == type(IERC165).interfaceId || interfaceId == type(IRegistry).interfaceId) {
|
349
|
+
return true;
|
350
|
+
}
|
351
|
+
|
352
|
+
return false;
|
353
|
+
}
|
354
|
+
|
202
355
|
// Internals
|
203
356
|
|
204
357
|
/// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
|
@@ -208,63 +361,63 @@ contract Registry is
|
|
208
361
|
returns(NftId nftId)
|
209
362
|
{
|
210
363
|
ObjectType objectType = info.objectType;
|
364
|
+
bool isInterceptor = info.isInterceptor;
|
365
|
+
address objectAddress = info.objectAddress;
|
366
|
+
address owner = info.initialOwner;
|
367
|
+
|
211
368
|
NftId parentNftId = info.parentNftId;
|
212
369
|
ObjectInfo memory parentInfo = _info[parentNftId];
|
213
370
|
ObjectType parentType = parentInfo.objectType; // see function header
|
214
371
|
address parentAddress = parentInfo.objectAddress;
|
215
372
|
|
216
373
|
// parent is contract -> need to check? -> check before minting
|
374
|
+
// special case: staking: to protocol possible as well
|
217
375
|
// special case: global registry nft as parent when not on mainnet -> global registry address is 0
|
218
376
|
// special case: when parentNftId == _chainNft.mint(), check for zero parent address before mint
|
219
377
|
// special case: when parentNftId == _chainNft.mint() && objectAddress == initialOwner
|
220
|
-
if(
|
221
|
-
|
378
|
+
if(objectType != STAKE()) {
|
379
|
+
if(parentAddress == address(0)) {
|
380
|
+
revert ErrorRegistryParentAddressZero();
|
381
|
+
}
|
222
382
|
}
|
223
383
|
|
224
|
-
address
|
384
|
+
address interceptorAddress = _getInterceptor(
|
385
|
+
isInterceptor,
|
386
|
+
objectType,
|
387
|
+
objectAddress,
|
388
|
+
parentInfo.isInterceptor,
|
389
|
+
parentAddress);
|
225
390
|
|
226
|
-
|
227
|
-
|
228
|
-
uint256 mintedTokenId = _chainNft.mint(
|
229
|
-
info.initialOwner,
|
230
|
-
interceptor,
|
231
|
-
EMPTY_URI);
|
232
|
-
nftId = toNftId(mintedTokenId);
|
233
|
-
|
234
|
-
// TODO move nftId out of info struct
|
235
|
-
// getters by nftId -> return struct without nftId
|
236
|
-
// getters by address -> return nftId AND struct
|
391
|
+
uint256 tokenId = _chainNft.getNextTokenId();
|
392
|
+
nftId = NftIdLib.toNftId(tokenId);
|
237
393
|
info.nftId = nftId;
|
238
394
|
_info[nftId] = info;
|
239
395
|
|
240
|
-
if(
|
241
|
-
|
242
|
-
|
243
|
-
if(_isValidContractCombination[objectType][parentType] == false) {
|
244
|
-
revert InvalidTypesCombination(objectType, parentType);
|
396
|
+
if(objectAddress > address(0)) {
|
397
|
+
if(_nftIdByAddress[objectAddress].gtz()) {
|
398
|
+
revert ErrorRegistryContractAlreadyRegistered(objectAddress);
|
245
399
|
}
|
246
400
|
|
247
|
-
|
401
|
+
_nftIdByAddress[objectAddress] = nftId;
|
402
|
+
}
|
248
403
|
|
249
|
-
|
250
|
-
revert ContractAlreadyRegistered(contractAddress);
|
251
|
-
}
|
404
|
+
emit LogRegistration(nftId, parentNftId, objectType, isInterceptor, objectAddress, owner);
|
252
405
|
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
revert InvalidTypesCombination(objectType, parentType);
|
259
|
-
}
|
260
|
-
}
|
406
|
+
// calls nft receiver(1) and interceptor(2)
|
407
|
+
uint256 mintedTokenId = _chainNft.mint(
|
408
|
+
owner,
|
409
|
+
interceptorAddress,
|
410
|
+
EMPTY_URI);
|
261
411
|
|
262
|
-
|
412
|
+
assert(mintedTokenId == tokenId);
|
263
413
|
}
|
264
414
|
|
265
415
|
/// @dev obtain interceptor address for this nft if applicable, address(0) otherwise
|
416
|
+
/// special case: STAKES (parent may be any type) -> no intercept call
|
417
|
+
/// default case:
|
266
418
|
function _getInterceptor(
|
267
419
|
bool isInterceptor,
|
420
|
+
ObjectType objectType,
|
268
421
|
address objectAddress,
|
269
422
|
bool parentIsInterceptor,
|
270
423
|
address parentObjectAddress
|
@@ -273,6 +426,11 @@ contract Registry is
|
|
273
426
|
view
|
274
427
|
returns (address interceptor)
|
275
428
|
{
|
429
|
+
// no intercepting calls for stakes
|
430
|
+
if (objectType == STAKE()) {
|
431
|
+
return address(0);
|
432
|
+
}
|
433
|
+
|
276
434
|
if (objectAddress == address(0)) {
|
277
435
|
if (parentIsInterceptor) {
|
278
436
|
return parentObjectAddress;
|
@@ -295,11 +453,11 @@ contract Registry is
|
|
295
453
|
private
|
296
454
|
{
|
297
455
|
uint256 protocolId = _chainNft.PROTOCOL_NFT_ID();
|
298
|
-
|
456
|
+
_protocolNftId = NftIdLib.toNftId(protocolId);
|
299
457
|
|
300
|
-
_info[
|
301
|
-
nftId:
|
302
|
-
parentNftId:
|
458
|
+
_info[_protocolNftId] = ObjectInfo({
|
459
|
+
nftId: _protocolNftId,
|
460
|
+
parentNftId: NftIdLib.zero(),
|
303
461
|
objectType: PROTOCOL(),
|
304
462
|
isInterceptor: false,
|
305
463
|
objectAddress: address(0),
|
@@ -314,23 +472,24 @@ contract Registry is
|
|
314
472
|
/// might also register the global registry when not on mainnet
|
315
473
|
function _registerRegistry()
|
316
474
|
private
|
475
|
+
returns (NftId registryNftId)
|
317
476
|
{
|
318
477
|
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
319
|
-
|
478
|
+
_registryNftId = NftIdLib.toNftId(registryId);
|
320
479
|
NftId parentNftId;
|
321
480
|
|
322
481
|
if(registryId != _chainNft.GLOBAL_REGISTRY_ID())
|
323
482
|
{// we're not the global registry
|
324
483
|
_registerGlobalRegistry();
|
325
|
-
parentNftId = toNftId(_chainNft.GLOBAL_REGISTRY_ID());
|
484
|
+
parentNftId = NftIdLib.toNftId(_chainNft.GLOBAL_REGISTRY_ID());
|
326
485
|
}
|
327
486
|
else
|
328
487
|
{// we are global registry
|
329
|
-
parentNftId =
|
488
|
+
parentNftId = _protocolNftId;
|
330
489
|
}
|
331
490
|
|
332
|
-
_info[
|
333
|
-
nftId:
|
491
|
+
_info[_registryNftId] = ObjectInfo({
|
492
|
+
nftId: _registryNftId,
|
334
493
|
parentNftId: parentNftId,
|
335
494
|
objectType: REGISTRY(),
|
336
495
|
isInterceptor: false,
|
@@ -338,9 +497,8 @@ contract Registry is
|
|
338
497
|
initialOwner: NFT_LOCK_ADDRESS,
|
339
498
|
data: ""
|
340
499
|
});
|
341
|
-
_nftIdByAddress[address(this)] = registryNftId;
|
342
|
-
_registryNftId = registryNftId;
|
343
500
|
|
501
|
+
_nftIdByAddress[address(this)] = _registryNftId;
|
344
502
|
_chainNft.mint(NFT_LOCK_ADDRESS, registryId);
|
345
503
|
}
|
346
504
|
|
@@ -349,11 +507,11 @@ contract Registry is
|
|
349
507
|
private
|
350
508
|
{
|
351
509
|
uint256 globalRegistryId = _chainNft.GLOBAL_REGISTRY_ID();
|
352
|
-
NftId globalRegistryNftId = toNftId(globalRegistryId);
|
510
|
+
NftId globalRegistryNftId = NftIdLib.toNftId(globalRegistryId);
|
353
511
|
|
354
512
|
_info[globalRegistryNftId] = ObjectInfo({
|
355
513
|
nftId: globalRegistryNftId,
|
356
|
-
parentNftId: toNftId(_chainNft.PROTOCOL_NFT_ID()),
|
514
|
+
parentNftId: NftIdLib.toNftId(_chainNft.PROTOCOL_NFT_ID()),
|
357
515
|
objectType: REGISTRY(),
|
358
516
|
isInterceptor: false,
|
359
517
|
objectAddress: address(0),
|
@@ -370,27 +528,51 @@ contract Registry is
|
|
370
528
|
// 2) DO NOT use object type (e.g. POLCY, BUNDLE, STAKE) as parent type
|
371
529
|
// 3) DO NOT use REGISTRY as object type
|
372
530
|
// 2) DO NOT use PROTOCOL and "zeroObjectType"
|
373
|
-
function
|
531
|
+
function _setupValidCoreTypesAndCombinations()
|
374
532
|
private
|
375
533
|
{
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
534
|
+
_coreTypes[REGISTRY()] = true;
|
535
|
+
_coreTypes[SERVICE()] = true;
|
536
|
+
_coreTypes[TOKEN()] = true;
|
537
|
+
_coreTypes[INSTANCE()] = true;
|
538
|
+
_coreTypes[PRODUCT()] = true;
|
539
|
+
_coreTypes[POOL()] = true;
|
540
|
+
_coreTypes[DISTRIBUTION()] = true;
|
541
|
+
_coreTypes[DISTRIBUTOR()] = true;
|
542
|
+
_coreTypes[ORACLE()] = true;
|
543
|
+
_coreTypes[POLICY()] = true;
|
544
|
+
_coreTypes[BUNDLE()] = true;
|
545
|
+
_coreTypes[STAKING()] = true;
|
546
|
+
_coreTypes[STAKE()] = true;
|
388
547
|
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
548
|
+
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
549
|
+
if(registryId == _chainNft.GLOBAL_REGISTRY_ID()) {
|
550
|
+
// we are global registry
|
551
|
+
// object is registry from different chain
|
552
|
+
// parent is global registry, this contract
|
553
|
+
_coreContractCombinations[REGISTRY()][REGISTRY()] = true; // only for global regstry
|
554
|
+
//_coreObjectCombinations[REGISTRY()][REGISTRY()] = true;
|
555
|
+
} else {
|
556
|
+
// we are not global registry
|
557
|
+
// object is local registry, this contract
|
558
|
+
// parent is global registry, object with 0 address or registry from mainnet???
|
559
|
+
}
|
560
|
+
_coreContractCombinations[STAKING()][REGISTRY()] = true; // only for chain staking contract
|
561
|
+
_coreContractCombinations[TOKEN()][REGISTRY()] = true;
|
562
|
+
//_coreContractCombinations[SERVICE()][REGISTRY()] = true;// do not need it here -> registerService() registers exactly this combination
|
563
|
+
_coreContractCombinations[INSTANCE()][REGISTRY()] = true;
|
564
|
+
|
565
|
+
_coreContractCombinations[PRODUCT()][INSTANCE()] = true;
|
566
|
+
_coreContractCombinations[DISTRIBUTION()][INSTANCE()] = true;
|
567
|
+
_coreContractCombinations[ORACLE()][INSTANCE()] = true;
|
568
|
+
_coreContractCombinations[POOL()][INSTANCE()] = true;
|
569
|
+
|
570
|
+
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
571
|
+
_coreObjectCombinations[POLICY()][PRODUCT()] = true;
|
572
|
+
_coreObjectCombinations[BUNDLE()][POOL()] = true;
|
573
|
+
|
574
|
+
// staking
|
575
|
+
_coreObjectCombinations[STAKE()][PROTOCOL()] = true;
|
576
|
+
_coreObjectCombinations[STAKE()][INSTANCE()] = true;
|
395
577
|
}
|
396
|
-
}
|
578
|
+
}
|