@etherisc/gif-next 0.0.2-ef935e0-790 → 0.0.2-efd035d-094
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 +72 -14
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +814 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +471 -552
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +343 -173
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +478 -3045
- 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 +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +649 -336
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +511 -349
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +351 -105
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3642 -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/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +91 -2
- 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 +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 +30 -112
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +718 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → oracle/IOracleService.sol/IOracleService.json} +269 -174
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1133 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +868 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +714 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +297 -358
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -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} +233 -200
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +259 -284
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → product/IProductService.sol/IProductService.json} +147 -87
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -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 +407 -127
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +382 -219
- 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 +601 -180
- 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 +452 -330
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +331 -135
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
- 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 +351 -100
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → shared/AccessManagerCustom.sol/AccessManagerCustom.json} +122 -11
- 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 +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1490 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -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} +203 -217
- 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/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 +4 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
- 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 +34 -30
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +88 -176
- 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/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -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 +115 -29
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -62
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +191 -165
- 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 +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
- 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 +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
- 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 +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 +345 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{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 +209 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +105 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/{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 +198 -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 +261 -0
- package/contracts/distribution/DistributionService.sol +298 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/distribution/IDistributionComponent.sol +66 -0
- package/contracts/distribution/IDistributionService.sol +81 -0
- package/contracts/instance/BundleManager.sol +126 -0
- package/contracts/instance/IInstance.sol +67 -24
- package/contracts/instance/IInstanceService.sol +64 -13
- package/contracts/instance/Instance.sol +156 -363
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
- package/contracts/instance/InstanceReader.sol +167 -83
- package/contracts/instance/InstanceService.sol +305 -126
- package/contracts/instance/InstanceServiceManager.sol +12 -25
- package/contracts/instance/InstanceStore.sol +281 -0
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/base/Cloneable.sol +51 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectManager.sol +82 -0
- package/contracts/instance/module/IAccess.sol +29 -21
- 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/oracle/IOracle.sol +20 -0
- package/contracts/oracle/IOracleComponent.sol +16 -0
- package/contracts/oracle/IOracleService.sol +42 -0
- package/contracts/oracle/Oracle.sol +122 -0
- package/contracts/oracle/OracleService.sol +191 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- 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 +150 -0
- package/contracts/pool/Pool.sol +299 -0
- package/contracts/pool/PoolService.sol +453 -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 +442 -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 +475 -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 -0
- package/contracts/registry/IRegistry.sol +75 -30
- package/contracts/registry/IRegistryService.sol +47 -28
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +378 -246
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +115 -207
- package/contracts/registry/RegistryServiceManager.sol +24 -46
- package/contracts/registry/ReleaseManager.sol +599 -0
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +261 -57
- package/contracts/{instance/AccessManagerSimple.sol → shared/AccessManagerCustom.sol} +276 -232
- 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 +281 -0
- package/contracts/shared/ComponentService.sol +618 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +111 -0
- package/contracts/shared/ERC165.sol +15 -13
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/shared/IComponent.sol +70 -0
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +13 -12
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +8 -5
- package/contracts/shared/IVersionable.sol +5 -48
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +144 -0
- package/contracts/shared/KeyValueStore.sol +127 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +35 -7
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +59 -86
- package/contracts/shared/PolicyHolder.sol +102 -0
- package/contracts/shared/ProxyManager.sol +131 -26
- package/contracts/shared/Registerable.sol +26 -41
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +46 -24
- package/contracts/shared/TokenHandler.sol +37 -6
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +149 -0
- package/contracts/staking/StakeManagerLib.sol +179 -0
- package/contracts/staking/Staking.sol +551 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +406 -0
- package/contracts/staking/StakingServiceManager.sol +45 -0
- package/contracts/staking/StakingStore.sol +572 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +128 -0
- package/contracts/{types → type}/Blocknumber.sol +21 -3
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +33 -23
- package/contracts/{types → type}/NftId.sol +21 -15
- package/contracts/type/NftIdSet.sol +62 -0
- package/contracts/{types → type}/ObjectType.sol +32 -16
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +5 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +146 -0
- package/contracts/type/Seconds.sol +81 -0
- package/contracts/{types → type}/StateId.sol +30 -4
- package/contracts/{types → type}/Timestamp.sol +18 -13
- package/contracts/{types → type}/UFixed.sol +1 -0
- package/contracts/{types → type}/Version.sol +2 -1
- 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/Distribution.sol/Distribution.json +0 -618
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -782
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -775
- 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/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -839
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -448
- 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/NftIdSet.sol/LibNftIdSet.json +0 -10
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/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 -91
- package/contracts/components/Distribution.sol +0 -160
- package/contracts/components/IBaseComponent.sol +0 -25
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -62
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -243
- package/contracts/components/Product.sol +0 -297
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagedSimple.sol +0 -115
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/InstanceAccessManager.sol +0 -288
- package/contracts/instance/base/ComponentServiceBase.sol +0 -124
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/module/ISetup.sol +0 -44
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/DistributionService.sol +0 -88
- package/contracts/instance/service/DistributionServiceManager.sol +0 -54
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPoolService.sol +0 -37
- package/contracts/instance/service/IProductService.sol +0 -107
- package/contracts/instance/service/PoolService.sol +0 -194
- package/contracts/instance/service/PoolServiceManager.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 -24
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NftIdSet.sol +0 -60
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/RoleId.sol +0 -89
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,202 +1,226 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {
|
4
|
+
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
6
|
|
7
|
-
import {
|
8
|
-
import {IRegistry} from "./IRegistry.sol";
|
9
|
-
import {NftId, toNftId, zeroNftId, NftIdLib} from "../types/NftId.sol";
|
10
|
-
import {Version, VersionPart, VersionLib, VersionPartLib} from "../types/Version.sol";
|
11
|
-
import {ObjectType, PROTOCOL, REGISTRY, TOKEN, SERVICE, INSTANCE, STAKE, PRODUCT, DISTRIBUTION, ORACLE, POOL, POLICY, BUNDLE} from "../types/ObjectType.sol";
|
12
|
-
import {ITransferInterceptor} from "./ITransferInterceptor.sol";
|
7
|
+
import {InitializableCustom} from "../shared/InitializableCustom.sol";
|
13
8
|
|
14
|
-
import {
|
9
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
10
|
+
import {VersionPart} from "../type/Version.sol";
|
11
|
+
import {ObjectType, PROTOCOL, REGISTRY, TOKEN, SERVICE, INSTANCE, STAKE, STAKING, PRODUCT, DISTRIBUTION, DISTRIBUTOR, ORACLE, POOL, POLICY, BUNDLE} from "../type/ObjectType.sol";
|
15
12
|
|
13
|
+
import {ChainNft} from "./ChainNft.sol";
|
14
|
+
import {IRegistry} from "./IRegistry.sol";
|
15
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
16
|
+
import {ReleaseManager} from "./ReleaseManager.sol";
|
17
|
+
import {TokenRegistry} from "./TokenRegistry.sol";
|
18
|
+
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
16
19
|
|
17
20
|
// IMPORTANT
|
18
21
|
// Each NFT minted by registry is accosiated with:
|
19
22
|
// 1) NFT owner
|
20
23
|
// 2) registred contract OR object stored in registered (parent) contract
|
21
24
|
// Four registration flows:
|
22
|
-
// 1)
|
23
|
-
// 2)
|
24
|
-
// 3) IRegisterable address by
|
25
|
-
// 4) state object by
|
25
|
+
// 1) IService address by release manager (SERVICE of domain SERVICE aka registry service aka release creation)
|
26
|
+
// 2) IService address by release manager (SERVICE of domain !SERVICE aka regular service)
|
27
|
+
// 3) IRegisterable address by regular service (INSTANCE, PRODUCT, POOL, DISTRIBUTION, ORACLE)
|
28
|
+
// 4) state object by regular service (POLICY, BUNDLE, STAKE)
|
26
29
|
|
27
30
|
contract Registry is
|
28
|
-
|
31
|
+
InitializableCustom,
|
29
32
|
IRegistry
|
30
33
|
{
|
31
|
-
|
32
|
-
address public constant NFT_LOCK_ADDRESS = address(0x1);
|
34
|
+
address public NFT_LOCK_ADDRESS = address(0x1);
|
33
35
|
uint256 public constant REGISTRY_TOKEN_SEQUENCE_ID = 2;
|
34
|
-
uint256 public constant
|
36
|
+
uint256 public constant STAKING_TOKEN_SEQUENCE_ID = 3;
|
35
37
|
string public constant EMPTY_URI = "";
|
36
38
|
|
37
|
-
|
39
|
+
mapping(NftId nftId => ObjectInfo info) private _info;
|
40
|
+
mapping(address object => NftId nftId) private _nftIdByAddress;
|
41
|
+
|
42
|
+
mapping(VersionPart version => mapping(ObjectType serviceDomain => address)) private _service;
|
38
43
|
|
39
|
-
mapping(
|
40
|
-
mapping(address object => NftId nftId) internal _nftIdByAddress;
|
44
|
+
mapping(ObjectType objectType => bool) private _coreTypes;
|
41
45
|
|
42
46
|
mapping(ObjectType objectType => mapping(
|
43
|
-
ObjectType parentType => bool))
|
47
|
+
ObjectType parentType => bool)) private _coreContractCombinations;
|
44
48
|
|
45
49
|
mapping(ObjectType objectType => mapping(
|
46
|
-
ObjectType parentType => bool))
|
50
|
+
ObjectType parentType => bool)) private _coreObjectCombinations;
|
47
51
|
|
48
|
-
|
49
|
-
|
50
|
-
VersionPart majorVersion => address service)) internal _service;
|
52
|
+
RegistryAdmin public immutable _admin;
|
53
|
+
ChainNft public immutable _chainNft;
|
51
54
|
|
52
|
-
NftId
|
53
|
-
NftId
|
54
|
-
|
55
|
+
NftId public immutable _protocolNftId;
|
56
|
+
NftId public immutable _registryNftId;
|
57
|
+
NftId public _stakingNftId;
|
55
58
|
|
59
|
+
address public _tokenRegistryAddress;
|
60
|
+
address public _stakingAddress;
|
61
|
+
ReleaseManager public _releaseManager;
|
56
62
|
|
57
|
-
modifier
|
58
|
-
if(msg.sender
|
59
|
-
revert
|
63
|
+
modifier onlyRegistryService() {
|
64
|
+
if(!_releaseManager.isActiveRegistryService(msg.sender)) {
|
65
|
+
revert ErrorRegistryCallerNotRegistryService();
|
60
66
|
}
|
61
67
|
_;
|
62
68
|
}
|
63
69
|
|
64
|
-
|
65
|
-
|
66
|
-
|
70
|
+
|
71
|
+
modifier onlyReleaseManager() {
|
72
|
+
if(msg.sender != address(_releaseManager)) {
|
73
|
+
revert ErrorRegistryCallerNotReleaseManager();
|
67
74
|
}
|
68
75
|
_;
|
69
76
|
}
|
70
77
|
|
71
|
-
constructor(address registryOwner, VersionPart majorVersion)
|
72
|
-
{
|
73
|
-
require(registryOwner > address(0), "Registry: registry owner is 0");
|
74
|
-
|
75
|
-
// major version at constructor time
|
76
|
-
_majorVersion = VersionLib.toVersionPart(GIF_MAJOR_VERSION_AT_DEPLOYMENT);
|
77
|
-
emit LogInitialMajorVersionSet(_majorVersion);
|
78
78
|
|
79
|
+
constructor(RegistryAdmin admin)
|
80
|
+
InitializableCustom()
|
81
|
+
{
|
82
|
+
_admin = admin;
|
79
83
|
// deploy NFT
|
80
|
-
_chainNft = new ChainNft(address(this))
|
84
|
+
_chainNft = new ChainNft(address(this));
|
81
85
|
|
82
86
|
// initial registry setup
|
83
|
-
_registerProtocol();
|
84
|
-
_registerRegistry(
|
85
|
-
_registerRegistryService(registryOwner);
|
86
|
-
|
87
|
-
// set object parent relations
|
88
|
-
_setupValidObjectParentCombinations();
|
87
|
+
_protocolNftId = _registerProtocol();
|
88
|
+
_registryNftId = _registerRegistry();
|
89
89
|
|
90
|
-
|
90
|
+
// set object types and object parent relations
|
91
|
+
_setupValidCoreTypesAndCombinations();
|
91
92
|
}
|
92
93
|
|
93
|
-
// from IRegistry
|
94
94
|
|
95
|
-
/// @dev
|
96
|
-
|
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
|
101
|
+
)
|
97
102
|
external
|
98
|
-
|
103
|
+
initializer()
|
99
104
|
{
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
if (newMax <= oldMax || newMax - oldMax != 1) {
|
104
|
-
revert MajorVersionMaxIncreaseInvalid(newMajorVersion, _majorVersion);
|
105
|
-
}
|
105
|
+
_releaseManager = ReleaseManager(releaseManager);
|
106
|
+
_tokenRegistryAddress = tokenRegistry;
|
107
|
+
_stakingAddress = staking;
|
106
108
|
|
107
|
-
|
108
|
-
emit LogMajorVersionSet(_majorVersion);
|
109
|
+
_stakingNftId = _registerStaking();
|
109
110
|
}
|
110
111
|
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
112
|
+
function registerService(
|
113
|
+
ObjectInfo memory info,
|
114
|
+
VersionPart version,
|
115
|
+
ObjectType domain
|
116
|
+
)
|
115
117
|
external
|
116
|
-
|
118
|
+
onlyReleaseManager
|
117
119
|
returns(NftId nftId)
|
118
120
|
{
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
address parentAddress = parentInfo.objectAddress;
|
124
|
-
|
125
|
-
// parent is contract -> need to check? -> check before minting
|
126
|
-
// special case: global registry nft as parent when not on mainnet -> global registry address is 0
|
127
|
-
// special case: when parentNftId == _chainNft.mint(), check for zero parent address before mint
|
128
|
-
// special case: when parentNftId == _chainNft.mint() && objectAddress == initialOwner
|
129
|
-
if(parentAddress == address(0)) {
|
130
|
-
revert ZeroParentAddress();
|
121
|
+
address service = info.objectAddress;
|
122
|
+
/* must be guaranteed by release manager
|
123
|
+
if(service == address(0)) {
|
124
|
+
revert();
|
131
125
|
}
|
132
126
|
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
uint256 mintedTokenId = _chainNft.mint(
|
137
|
-
info.initialOwner,
|
138
|
-
interceptor,
|
139
|
-
EMPTY_URI);
|
140
|
-
nftId = toNftId(mintedTokenId);
|
127
|
+
if(version.eqz()) {
|
128
|
+
revert();
|
129
|
+
}
|
141
130
|
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
info.
|
146
|
-
|
131
|
+
if(info.objectType != SERVICE()) {
|
132
|
+
revert();
|
133
|
+
}
|
134
|
+
if(info.parentType != REGISTRY()) {
|
135
|
+
revert();
|
136
|
+
}
|
137
|
+
info.initialOwner == NFT_LOCK_ADDRESS <- if services are access managed
|
138
|
+
*/
|
139
|
+
|
140
|
+
if(domain.eqz()) {
|
141
|
+
revert ErrorRegistryDomainZero(service);
|
142
|
+
}
|
147
143
|
|
148
|
-
if(
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
revert InvalidTypesCombination(objectType, parentType);
|
154
|
-
}
|
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
|
|
158
|
-
|
159
|
-
|
160
|
-
}
|
152
|
+
emit LogServiceRegistration(version, domain);
|
153
|
+
}
|
161
154
|
|
162
|
-
|
155
|
+
function register(ObjectInfo memory info)
|
156
|
+
external
|
157
|
+
onlyRegistryService
|
158
|
+
returns(NftId nftId)
|
159
|
+
{
|
160
|
+
ObjectType objectType = info.objectType;
|
161
|
+
ObjectType parentType = _info[info.parentNftId].objectType;
|
163
162
|
|
164
|
-
|
165
|
-
|
166
|
-
|
163
|
+
// only valid core types combinations
|
164
|
+
if(info.objectAddress == address(0))
|
165
|
+
{
|
166
|
+
if(_coreObjectCombinations[objectType][parentType] == false) {
|
167
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
167
168
|
}
|
168
169
|
}
|
169
170
|
else
|
170
171
|
{
|
171
|
-
if(
|
172
|
-
revert
|
172
|
+
if(_coreContractCombinations[objectType][parentType] == false) {
|
173
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
173
174
|
}
|
174
175
|
}
|
175
176
|
|
176
|
-
|
177
|
+
nftId = _register(info);
|
177
178
|
}
|
179
|
+
|
180
|
+
function registerWithCustomType(ObjectInfo memory info)
|
181
|
+
external
|
182
|
+
onlyRegistryService
|
183
|
+
returns(NftId nftId)
|
184
|
+
{
|
185
|
+
ObjectType objectType = info.objectType;
|
186
|
+
ObjectType parentType = _info[info.parentNftId].objectType;
|
187
|
+
|
188
|
+
if(_coreTypes[objectType]) {
|
189
|
+
revert ErrorRegistryCoreTypeRegistration();
|
190
|
+
}
|
191
|
+
|
192
|
+
if(
|
193
|
+
parentType == PROTOCOL() ||
|
194
|
+
parentType == REGISTRY() ||
|
195
|
+
parentType == SERVICE()
|
196
|
+
) {
|
197
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
198
|
+
}
|
199
|
+
|
200
|
+
_register(info);
|
201
|
+
}
|
202
|
+
|
203
|
+
|
178
204
|
/// @dev earliest GIF major version
|
179
|
-
function
|
180
|
-
return
|
205
|
+
function getInitialVersion() external view returns (VersionPart) {
|
206
|
+
return _releaseManager.getInitialVersion();
|
181
207
|
}
|
182
208
|
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
// likely setting up a new gif version does not fit into a single tx
|
187
|
-
// in this case we might want to have a period where the latest version is
|
188
|
-
// in the process of being set up while the latest active version is 1 major release smaller
|
189
|
-
/// @dev latest GIF major version (might not yet be active)
|
190
|
-
function getMajorVersionMax() external view returns (VersionPart) {
|
191
|
-
return _majorVersion;
|
209
|
+
/// @dev next GIF release version to be released
|
210
|
+
function getNextVersion() external view returns (VersionPart) {
|
211
|
+
return _releaseManager.getNextVersion();
|
192
212
|
}
|
193
213
|
|
194
214
|
/// @dev latest active GIF release version
|
195
|
-
function
|
196
|
-
return
|
215
|
+
function getLatestVersion() external view returns (VersionPart) {
|
216
|
+
return _releaseManager.getLatestVersion();
|
217
|
+
}
|
218
|
+
|
219
|
+
function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory) {
|
220
|
+
return _releaseManager.getReleaseInfo(version);
|
197
221
|
}
|
198
222
|
|
199
|
-
function getObjectCount() external view
|
223
|
+
function getObjectCount() external view returns (uint256) {
|
200
224
|
return _chainNft.totalSupply();
|
201
225
|
}
|
202
226
|
|
@@ -204,11 +228,15 @@ contract Registry is
|
|
204
228
|
return _registryNftId;
|
205
229
|
}
|
206
230
|
|
207
|
-
function
|
231
|
+
function getProtocolNftId() external view returns (NftId nftId) {
|
232
|
+
return _protocolNftId;
|
233
|
+
}
|
234
|
+
|
235
|
+
function getNftId(address object) external view returns (NftId id) {
|
208
236
|
return _nftIdByAddress[object];
|
209
237
|
}
|
210
238
|
|
211
|
-
function ownerOf(NftId nftId) public view
|
239
|
+
function ownerOf(NftId nftId) public view returns (address) {
|
212
240
|
return _chainNft.ownerOf(nftId.toInt());
|
213
241
|
}
|
214
242
|
|
@@ -216,81 +244,167 @@ contract Registry is
|
|
216
244
|
return _chainNft.ownerOf(_nftIdByAddress[contractAddress].toInt());
|
217
245
|
}
|
218
246
|
|
219
|
-
function getObjectInfo(NftId nftId) external view
|
247
|
+
function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory) {
|
220
248
|
return _info[nftId];
|
221
249
|
}
|
222
250
|
|
223
|
-
function getObjectInfo(address object) external view
|
251
|
+
function getObjectInfo(address object) external view returns (ObjectInfo memory) {
|
224
252
|
return _info[_nftIdByAddress[object]];
|
225
253
|
}
|
226
254
|
|
227
|
-
function isRegistered(NftId nftId) public view
|
255
|
+
function isRegistered(NftId nftId) public view returns (bool) {
|
228
256
|
return _info[nftId].objectType.gtz();
|
229
257
|
}
|
230
258
|
|
231
|
-
function isRegistered(address object) external view
|
259
|
+
function isRegistered(address object) external view returns (bool) {
|
232
260
|
return _nftIdByAddress[object].gtz();
|
233
261
|
}
|
234
262
|
|
235
|
-
function
|
236
|
-
return
|
263
|
+
function isRegisteredService(address object) external view returns (bool) {
|
264
|
+
return _info[_nftIdByAddress[object]].objectType == SERVICE();
|
265
|
+
}
|
266
|
+
|
267
|
+
function isRegisteredComponent(address object) external view returns (bool) {
|
268
|
+
NftId objectParentNftId = _info[_nftIdByAddress[object]].parentNftId;
|
269
|
+
return _info[objectParentNftId].objectType == INSTANCE();
|
270
|
+
}
|
271
|
+
|
272
|
+
function isActiveRelease(VersionPart version) external view returns (bool)
|
273
|
+
{
|
274
|
+
return _releaseManager.isActiveRelease(version);
|
275
|
+
}
|
276
|
+
|
277
|
+
function getStakingAddress() external view returns (address staking) {
|
278
|
+
//return getObjectInfo(_stakingNftId).objectAddress;
|
279
|
+
//return _info[_stakingNftId].objectAddress;
|
280
|
+
return _stakingAddress;
|
281
|
+
}
|
282
|
+
|
283
|
+
function getTokenRegistryAddress() external view returns (address tokenRegistry) {
|
284
|
+
return _tokenRegistryAddress;
|
237
285
|
}
|
238
286
|
|
239
|
-
// special case to retrive a gif service
|
240
287
|
function getServiceAddress(
|
241
|
-
|
242
|
-
VersionPart
|
243
|
-
) external view returns (address)
|
288
|
+
ObjectType serviceDomain,
|
289
|
+
VersionPart releaseVersion
|
290
|
+
) external view returns (address service)
|
244
291
|
{
|
245
|
-
|
246
|
-
|
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);
|
301
|
+
}
|
302
|
+
|
303
|
+
function getChainNftAddress() external view override returns (address) {
|
304
|
+
return address(_chainNft);
|
247
305
|
}
|
248
306
|
|
249
|
-
function
|
250
|
-
return
|
307
|
+
function getRegistryAdminAddress() external view returns (address) {
|
308
|
+
return address(_admin);
|
309
|
+
}
|
310
|
+
|
311
|
+
function getAuthority() external view returns (address) {
|
312
|
+
return _admin.authority();
|
251
313
|
}
|
252
314
|
|
253
315
|
function getOwner() public view returns (address owner) {
|
254
316
|
return ownerOf(address(this));
|
255
317
|
}
|
256
318
|
|
319
|
+
// IERC165
|
320
|
+
|
321
|
+
function supportsInterface(bytes4 interfaceId) external pure returns (bool) {
|
322
|
+
if(interfaceId == type(IERC165).interfaceId || interfaceId == type(IRegistry).interfaceId) {
|
323
|
+
return true;
|
324
|
+
}
|
325
|
+
|
326
|
+
return false;
|
327
|
+
}
|
328
|
+
|
257
329
|
// Internals
|
258
330
|
|
259
|
-
|
331
|
+
/// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
|
332
|
+
// TODO registration of precompile addresses
|
333
|
+
function _register(ObjectInfo memory info)
|
260
334
|
internal
|
335
|
+
returns(NftId nftId)
|
261
336
|
{
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
337
|
+
ObjectType objectType = info.objectType;
|
338
|
+
bool isInterceptor = info.isInterceptor;
|
339
|
+
address objectAddress = info.objectAddress;
|
340
|
+
address owner = info.initialOwner;
|
341
|
+
|
342
|
+
NftId parentNftId = info.parentNftId;
|
343
|
+
ObjectInfo memory parentInfo = _info[parentNftId];
|
344
|
+
ObjectType parentType = parentInfo.objectType; // see function header
|
345
|
+
address parentAddress = parentInfo.objectAddress;
|
346
|
+
|
347
|
+
// parent is contract -> need to check? -> check before minting
|
348
|
+
// special case: staking: to protocol possible as well
|
349
|
+
// special case: global registry nft as parent when not on mainnet -> global registry address is 0
|
350
|
+
// special case: when parentNftId == _chainNft.mint(), check for zero parent address before mint
|
351
|
+
// special case: when parentNftId == _chainNft.mint() && objectAddress == initialOwner
|
352
|
+
if(objectType != STAKE()) {
|
353
|
+
if(parentAddress == address(0)) {
|
354
|
+
revert ErrorRegistryParentAddressZero();
|
355
|
+
}
|
271
356
|
}
|
272
|
-
|
273
|
-
|
274
|
-
|
357
|
+
|
358
|
+
address interceptorAddress = _getInterceptor(
|
359
|
+
isInterceptor,
|
360
|
+
objectType,
|
361
|
+
objectAddress,
|
362
|
+
parentInfo.isInterceptor,
|
363
|
+
parentAddress);
|
364
|
+
|
365
|
+
uint256 tokenId = _chainNft.getNextTokenId();
|
366
|
+
nftId = NftIdLib.toNftId(tokenId);
|
367
|
+
info.nftId = nftId;
|
368
|
+
_info[nftId] = info;
|
369
|
+
|
370
|
+
if(objectAddress > address(0)) {
|
371
|
+
if(_nftIdByAddress[objectAddress].gtz()) {
|
372
|
+
revert ErrorRegistryContractAlreadyRegistered(objectAddress);
|
373
|
+
}
|
374
|
+
|
375
|
+
_nftIdByAddress[objectAddress] = nftId;
|
275
376
|
}
|
276
377
|
|
277
|
-
|
278
|
-
_service[serviceNameHash][majorVersion] = info.objectAddress;
|
378
|
+
emit LogRegistration(nftId, parentNftId, objectType, isInterceptor, objectAddress, owner);
|
279
379
|
|
280
|
-
|
380
|
+
// calls nft receiver(1) and interceptor(2)
|
381
|
+
uint256 mintedTokenId = _chainNft.mint(
|
382
|
+
owner,
|
383
|
+
interceptorAddress,
|
384
|
+
EMPTY_URI);
|
385
|
+
|
386
|
+
assert(mintedTokenId == tokenId);
|
281
387
|
}
|
282
388
|
|
283
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:
|
284
392
|
function _getInterceptor(
|
285
393
|
bool isInterceptor,
|
394
|
+
ObjectType objectType,
|
286
395
|
address objectAddress,
|
287
396
|
bool parentIsInterceptor,
|
288
397
|
address parentObjectAddress
|
289
398
|
)
|
290
399
|
internal
|
291
|
-
|
400
|
+
pure
|
292
401
|
returns (address interceptor)
|
293
402
|
{
|
403
|
+
// no intercepting calls for stakes
|
404
|
+
if (objectType == STAKE()) {
|
405
|
+
return address(0);
|
406
|
+
}
|
407
|
+
|
294
408
|
if (objectAddress == address(0)) {
|
295
409
|
if (parentIsInterceptor) {
|
296
410
|
return parentObjectAddress;
|
@@ -310,106 +424,100 @@ contract Registry is
|
|
310
424
|
|
311
425
|
/// @dev protocol registration used to anchor the dip ecosystem relations
|
312
426
|
function _registerProtocol()
|
313
|
-
|
427
|
+
private
|
428
|
+
returns (NftId protocolNftId)
|
314
429
|
{
|
315
430
|
uint256 protocolId = _chainNft.PROTOCOL_NFT_ID();
|
316
|
-
|
431
|
+
protocolNftId = NftIdLib.toNftId(protocolId);
|
432
|
+
|
433
|
+
_info[protocolNftId] = ObjectInfo({
|
434
|
+
nftId: protocolNftId,
|
435
|
+
parentNftId: NftIdLib.zero(),
|
436
|
+
objectType: PROTOCOL(),
|
437
|
+
isInterceptor: false,
|
438
|
+
objectAddress: address(0),
|
439
|
+
initialOwner: NFT_LOCK_ADDRESS,
|
440
|
+
data: ""
|
441
|
+
});
|
317
442
|
|
318
443
|
_chainNft.mint(NFT_LOCK_ADDRESS, protocolId);
|
319
|
-
|
320
|
-
_info[protocolNftId] = ObjectInfo(
|
321
|
-
protocolNftId,
|
322
|
-
zeroNftId(), // parent
|
323
|
-
PROTOCOL(),
|
324
|
-
false, // isInterceptor
|
325
|
-
address(0), // objectAddress
|
326
|
-
NFT_LOCK_ADDRESS,// initialOwner
|
327
|
-
""
|
328
|
-
);
|
329
444
|
}
|
330
445
|
|
331
446
|
/// @dev registry registration
|
332
447
|
/// might also register the global registry when not on mainnet
|
333
|
-
function _registerRegistry(
|
334
|
-
|
448
|
+
function _registerRegistry()
|
449
|
+
private
|
450
|
+
returns (NftId registryNftId)
|
335
451
|
{
|
336
452
|
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
337
|
-
|
338
|
-
|
453
|
+
registryNftId = NftIdLib.toNftId(registryId);
|
339
454
|
NftId parentNftId;
|
340
455
|
|
341
456
|
if(registryId != _chainNft.GLOBAL_REGISTRY_ID())
|
342
457
|
{// we're not the global registry
|
343
458
|
_registerGlobalRegistry();
|
344
|
-
parentNftId = toNftId(_chainNft.GLOBAL_REGISTRY_ID());
|
459
|
+
parentNftId = NftIdLib.toNftId(_chainNft.GLOBAL_REGISTRY_ID());
|
345
460
|
}
|
346
461
|
else
|
347
462
|
{// we are global registry
|
348
|
-
parentNftId =
|
463
|
+
parentNftId = _protocolNftId;
|
349
464
|
}
|
350
465
|
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
);
|
466
|
+
_info[registryNftId] = ObjectInfo({
|
467
|
+
nftId: registryNftId,
|
468
|
+
parentNftId: parentNftId,
|
469
|
+
objectType: REGISTRY(),
|
470
|
+
isInterceptor: false,
|
471
|
+
objectAddress: address(this),
|
472
|
+
initialOwner: NFT_LOCK_ADDRESS,
|
473
|
+
data: ""
|
474
|
+
});
|
475
|
+
|
362
476
|
_nftIdByAddress[address(this)] = registryNftId;
|
363
|
-
|
477
|
+
_chainNft.mint(NFT_LOCK_ADDRESS, registryId);
|
364
478
|
}
|
365
479
|
|
366
|
-
|
367
480
|
/// @dev global registry registration for non mainnet registries
|
368
481
|
function _registerGlobalRegistry()
|
369
|
-
|
482
|
+
private
|
370
483
|
{
|
371
484
|
uint256 globalRegistryId = _chainNft.GLOBAL_REGISTRY_ID();
|
485
|
+
NftId globalRegistryNftId = NftIdLib.toNftId(globalRegistryId);
|
486
|
+
|
487
|
+
_info[globalRegistryNftId] = ObjectInfo({
|
488
|
+
nftId: globalRegistryNftId,
|
489
|
+
parentNftId: NftIdLib.toNftId(_chainNft.PROTOCOL_NFT_ID()),
|
490
|
+
objectType: REGISTRY(),
|
491
|
+
isInterceptor: false,
|
492
|
+
objectAddress: address(0),
|
493
|
+
initialOwner: NFT_LOCK_ADDRESS,
|
494
|
+
data: ""
|
495
|
+
});
|
372
496
|
|
373
497
|
_chainNft.mint(NFT_LOCK_ADDRESS, globalRegistryId);
|
374
|
-
|
375
|
-
NftId globalRegistryNftId = toNftId(globalRegistryId);
|
376
|
-
|
377
|
-
_info[globalRegistryNftId] = ObjectInfo(
|
378
|
-
globalRegistryNftId,
|
379
|
-
toNftId(_chainNft.PROTOCOL_NFT_ID()), // parent
|
380
|
-
REGISTRY(),
|
381
|
-
false, // isInterceptor
|
382
|
-
address(0), // objectAddress
|
383
|
-
NFT_LOCK_ADDRESS, // initialOwner
|
384
|
-
"" // data
|
385
|
-
);
|
386
498
|
}
|
387
|
-
|
388
|
-
function
|
389
|
-
|
499
|
+
// depends on _registryNftId and _stakingAddress
|
500
|
+
function _registerStaking()
|
501
|
+
private
|
502
|
+
returns (NftId stakingNftId)
|
390
503
|
{
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
string memory serviceName = "RegistryService";
|
409
|
-
bytes32 serviceNameHash = keccak256(abi.encode(serviceName));
|
410
|
-
_service[serviceNameHash][VersionLib.toVersionPart(GIF_MAJOR_VERSION_AT_DEPLOYMENT)] = msg.sender;
|
411
|
-
_string[serviceNftId] = serviceName;
|
412
|
-
_serviceNftId = serviceNftId;
|
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);
|
413
521
|
}
|
414
522
|
|
415
523
|
/// @dev defines which object - parent types relations are allowed to register
|
@@ -417,28 +525,52 @@ contract Registry is
|
|
417
525
|
// 1) EACH object type MUST have only one parent type across ALL mappings
|
418
526
|
// 2) DO NOT use object type (e.g. POLCY, BUNDLE, STAKE) as parent type
|
419
527
|
// 3) DO NOT use REGISTRY as object type
|
420
|
-
// 2) DO NOT use PROTOCOL and "
|
421
|
-
function
|
422
|
-
|
528
|
+
// 2) DO NOT use PROTOCOL and "ObjectTypeLib.zero"
|
529
|
+
function _setupValidCoreTypesAndCombinations()
|
530
|
+
private
|
423
531
|
{
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
532
|
+
_coreTypes[REGISTRY()] = true;
|
533
|
+
_coreTypes[SERVICE()] = true;
|
534
|
+
_coreTypes[TOKEN()] = true;
|
535
|
+
_coreTypes[INSTANCE()] = true;
|
536
|
+
_coreTypes[PRODUCT()] = true;
|
537
|
+
_coreTypes[POOL()] = true;
|
538
|
+
_coreTypes[DISTRIBUTION()] = true;
|
539
|
+
_coreTypes[DISTRIBUTOR()] = true;
|
540
|
+
_coreTypes[ORACLE()] = true;
|
541
|
+
_coreTypes[POLICY()] = true;
|
542
|
+
_coreTypes[BUNDLE()] = true;
|
543
|
+
_coreTypes[STAKING()] = true;
|
544
|
+
_coreTypes[STAKE()] = true;
|
430
545
|
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
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
|
+
}
|
558
|
+
_coreContractCombinations[STAKING()][REGISTRY()] = true; // only for chain staking contract
|
559
|
+
_coreContractCombinations[TOKEN()][REGISTRY()] = true;
|
560
|
+
//_coreContractCombinations[SERVICE()][REGISTRY()] = true;// do not need it here -> registerService() registers exactly this combination
|
561
|
+
_coreContractCombinations[INSTANCE()][REGISTRY()] = true;
|
562
|
+
|
563
|
+
_coreContractCombinations[PRODUCT()][INSTANCE()] = true;
|
564
|
+
_coreContractCombinations[DISTRIBUTION()][INSTANCE()] = true;
|
565
|
+
_coreContractCombinations[ORACLE()][INSTANCE()] = true;
|
566
|
+
_coreContractCombinations[POOL()][INSTANCE()] = true;
|
567
|
+
|
568
|
+
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
569
|
+
_coreObjectCombinations[POLICY()][PRODUCT()] = true;
|
570
|
+
_coreObjectCombinations[BUNDLE()][POOL()] = true;
|
571
|
+
|
572
|
+
// staking
|
573
|
+
_coreObjectCombinations[STAKE()][PROTOCOL()] = true;
|
574
|
+
_coreObjectCombinations[STAKE()][INSTANCE()] = true;
|
443
575
|
}
|
444
576
|
}
|