@etherisc/gif-next 0.0.2-fe77319 → 0.0.2-fe8cf39-182
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 +427 -9
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/{registry/IRegistry.sol/IOwnable.json → authorization/AccessAdmin.sol/IAccessManagedChecker.json} +4 -4
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/access → authorization}/IAccess.sol/IAccess.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1130 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1016 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1509 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +864 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +915 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1008 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2426 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +359 -498
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +772 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +522 -574
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1929 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2429 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1046 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +748 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3718 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
- package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
- package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +774 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +880 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +597 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +602 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +453 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +4 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +827 -0
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1054 -115
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1043 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +1567 -153
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1928 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1269 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +735 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1571 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +485 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/{instance/component/IComponent.sol/IInstanceLinked.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/ContractLib.sol/ITargetHelper.json} +4 -9
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +632 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1203 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +510 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +146 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +147 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +329 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegistryLinked.sol}/IRegistryLinked.json +5 -19
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/shared/IService.sol/IService.json +399 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +209 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +378 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
- package/artifacts/contracts/shared/Service.sol/Service.json +453 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +723 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1494 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1167 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +469 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1917 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +796 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1380 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +736 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -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 +203 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +689 -0
- package/contracts/authorization/AccessManagerCloneable.sol +149 -0
- package/contracts/authorization/Authorization.sol +337 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +143 -0
- package/contracts/authorization/IAuthorization.sol +74 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
- package/contracts/distribution/Distribution.sol +289 -0
- package/contracts/distribution/DistributionService.sol +358 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/distribution/IDistributionService.sol +101 -0
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +438 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +65 -15
- package/contracts/instance/IInstanceService.sol +73 -0
- package/contracts/instance/Instance.sol +237 -46
- package/contracts/instance/InstanceAdmin.sol +437 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
- package/contracts/instance/InstanceReader.sol +637 -0
- package/contracts/instance/InstanceService.sol +416 -0
- package/contracts/instance/InstanceServiceManager.sol +39 -0
- package/contracts/instance/InstanceStore.sol +298 -0
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- package/contracts/instance/base/ObjectLifecycle.sol +113 -0
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +20 -0
- package/contracts/instance/module/IComponents.sol +51 -0
- package/contracts/instance/module/IDistribution.sol +42 -0
- package/contracts/instance/module/IPolicy.sol +85 -0
- package/contracts/instance/module/IRisk.sol +14 -0
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +47 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +156 -0
- package/contracts/oracle/OracleService.sol +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +175 -0
- package/contracts/pool/BasicPoolAuthorization.sol +76 -0
- package/contracts/pool/BundleService.sol +395 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +115 -0
- package/contracts/pool/IPoolComponent.sol +62 -0
- package/contracts/pool/IPoolService.sol +165 -0
- package/contracts/pool/Pool.sol +345 -0
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +757 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +259 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/BasicProduct.sol +51 -0
- package/contracts/product/BasicProductAuthorization.sol +56 -0
- package/contracts/product/ClaimService.sol +632 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +66 -0
- package/contracts/product/IClaimService.sol +135 -0
- package/contracts/product/IPolicyService.sol +95 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +62 -0
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +682 -0
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +304 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +478 -0
- package/contracts/product/RiskService.sol +145 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +249 -0
- package/contracts/registry/IRegistry.sol +151 -51
- package/contracts/registry/IRegistryService.sol +62 -0
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +6 -0
- package/contracts/registry/Registry.sol +660 -127
- package/contracts/registry/RegistryAdmin.sol +354 -0
- package/contracts/registry/RegistryService.sol +241 -0
- package/contracts/registry/RegistryServiceManager.sol +53 -0
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +511 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
- package/contracts/registry/TokenRegistry.sol +313 -0
- package/contracts/shared/Component.sol +227 -0
- package/contracts/shared/ComponentService.sol +692 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +128 -0
- package/contracts/shared/ContractLib.sol +253 -0
- package/contracts/shared/IComponent.sol +61 -0
- package/contracts/shared/IComponentService.sol +112 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/shared/IKeyValueStore.sol +54 -0
- package/contracts/shared/ILifecycle.sol +31 -0
- package/contracts/shared/INftOwnable.sol +25 -0
- package/contracts/shared/IPolicyHolder.sol +35 -0
- package/contracts/shared/IRegisterable.sol +37 -0
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +23 -0
- package/contracts/shared/InitializableERC165.sol +27 -0
- package/contracts/shared/InstanceLinkedComponent.sol +197 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +127 -0
- package/contracts/shared/PolicyHolder.sol +62 -0
- package/contracts/shared/Registerable.sol +109 -0
- package/contracts/shared/RegistryLinked.sol +38 -0
- package/contracts/shared/Service.sol +65 -0
- package/contracts/shared/TokenHandler.sol +341 -0
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +171 -0
- package/contracts/staking/IStakingService.sol +172 -0
- package/contracts/staking/StakeManagerLib.sol +276 -0
- package/contracts/staking/Staking.sol +546 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +180 -0
- package/contracts/staking/StakingService.sol +464 -0
- package/contracts/staking/StakingServiceManager.sol +45 -0
- package/contracts/staking/StakingStore.sol +606 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/type/AddressSet.sol +58 -0
- package/contracts/type/Amount.sol +150 -0
- package/contracts/type/Blocknumber.sol +142 -0
- package/contracts/type/ClaimId.sol +80 -0
- package/contracts/type/DistributorType.sol +55 -0
- package/contracts/type/Fee.sol +66 -0
- package/contracts/type/Key32.sol +50 -0
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +85 -0
- package/contracts/type/NftIdSet.sol +62 -0
- package/contracts/type/ObjectType.sol +303 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/type/Referral.sol +90 -0
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +74 -0
- package/contracts/type/RoleId.sol +182 -0
- package/contracts/type/Seconds.sol +101 -0
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +149 -0
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +141 -0
- package/contracts/type/UFixed.sol +245 -0
- package/contracts/type/Version.sol +120 -0
- package/contracts/upgradeability/IVersionable.sol +53 -0
- package/contracts/upgradeability/ProxyManager.sol +232 -0
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +14 -0
- package/contracts/upgradeability/Versionable.sol +59 -0
- package/package.json +26 -7
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Component.sol/Component.json +0 -179
- package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
- package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
- package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -195
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -213
- package/artifacts/contracts/experiment/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/IC.sol/IC.json +0 -63
- package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
- package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -327
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -105
- package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
- package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
- package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
- package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -162
- package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
- package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
- package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
- package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
- package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
- package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -125
- package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
- package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
- package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
- package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
- package/contracts/components/Component.sol +0 -62
- package/contracts/components/IPool.sol +0 -9
- package/contracts/components/IProduct.sol +0 -11
- package/contracts/components/Pool.sol +0 -29
- package/contracts/components/Product.sol +0 -65
- package/contracts/experiment/A.sol +0 -56
- package/contracts/experiment/B.sol +0 -23
- package/contracts/experiment/C.sol +0 -28
- package/contracts/experiment/IA.sol +0 -18
- package/contracts/experiment/IB.sol +0 -9
- package/contracts/experiment/IC.sol +0 -11
- package/contracts/instance/access/Access.sol +0 -218
- package/contracts/instance/access/IAccess.sol +0 -83
- package/contracts/instance/component/ComponentModule.sol +0 -259
- package/contracts/instance/component/IComponent.sol +0 -94
- package/contracts/instance/policy/IPolicy.sol +0 -66
- package/contracts/instance/policy/PolicyModule.sol +0 -106
- package/contracts/instance/pool/IPoolModule.sol +0 -40
- package/contracts/instance/pool/PoolModule.sol +0 -83
- package/contracts/instance/product/IProductService.sol +0 -45
- package/contracts/instance/product/ProductService.sol +0 -105
@@ -0,0 +1,249 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {ERC721, ERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
|
5
|
+
import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
|
6
|
+
|
7
|
+
import {ITransferInterceptor} from "./ITransferInterceptor.sol";
|
8
|
+
|
9
|
+
contract ChainNft is ERC721Enumerable {
|
10
|
+
|
11
|
+
event LogTokenInterceptorAddress(uint256 tokenId, address interceptor);
|
12
|
+
|
13
|
+
// constants
|
14
|
+
string public constant NAME = "Dezentralized Insurance Protocol NFT";
|
15
|
+
string public constant SYMBOL = "DIPNFT";
|
16
|
+
|
17
|
+
uint256 public constant PROTOCOL_NFT_ID = 1101;
|
18
|
+
uint256 public constant GLOBAL_REGISTRY_ID = 2101;
|
19
|
+
|
20
|
+
// custom errors
|
21
|
+
error ErrorChainNftCallerNotRegistry(address caller);
|
22
|
+
error ErrorChainNftRegistryAddressZero();
|
23
|
+
error ErrorChainNftUriEmpty();
|
24
|
+
error ErrorChainNftUriAlreadySet();
|
25
|
+
|
26
|
+
// contract state
|
27
|
+
|
28
|
+
// remember interceptors
|
29
|
+
mapping(uint256 tokenId => address interceptor) private _interceptor;
|
30
|
+
|
31
|
+
// remember token uri
|
32
|
+
mapping(uint256 tokenId => string uri) private _uri;
|
33
|
+
|
34
|
+
// remember registry
|
35
|
+
address private _registry;
|
36
|
+
|
37
|
+
// only used for _getNextTokenId
|
38
|
+
uint256 internal _chainIdDigits;
|
39
|
+
uint256 internal _chainIdMultiplier;
|
40
|
+
uint256 internal _idNext;
|
41
|
+
uint256 internal _totalMinted;
|
42
|
+
|
43
|
+
modifier onlyRegistry() {
|
44
|
+
if (msg.sender != _registry) { revert ErrorChainNftCallerNotRegistry(msg.sender); }
|
45
|
+
_;
|
46
|
+
}
|
47
|
+
|
48
|
+
constructor(address registry)
|
49
|
+
ERC721(NAME, SYMBOL)
|
50
|
+
{
|
51
|
+
if (registry == address(0)) { revert ErrorChainNftRegistryAddressZero(); }
|
52
|
+
|
53
|
+
// NFT contract is deployed by the registry
|
54
|
+
_registry = registry;
|
55
|
+
|
56
|
+
_chainIdDigits = _calculateChainIdDigits(block.chainid);
|
57
|
+
_chainIdMultiplier = 10 ** _chainIdDigits;
|
58
|
+
|
59
|
+
// the first object registered through normal registration starts with id 4
|
60
|
+
// 1 -> protocol
|
61
|
+
// 2 -> registry
|
62
|
+
// 3 -> staking
|
63
|
+
// >= 4 -> all other objects
|
64
|
+
_idNext = 4;
|
65
|
+
_totalMinted = 0;
|
66
|
+
}
|
67
|
+
|
68
|
+
/**
|
69
|
+
* @dev mints a token for a specified token id
|
70
|
+
* not part of the IRegistry interface only needed for
|
71
|
+
* initial registry setup (protocol and global registry objects)
|
72
|
+
*/
|
73
|
+
function mint(
|
74
|
+
address to,
|
75
|
+
uint256 tokenId
|
76
|
+
)
|
77
|
+
external
|
78
|
+
onlyRegistry()
|
79
|
+
{
|
80
|
+
_safeMintWithInterceptorAddress(to, tokenId, address(0));
|
81
|
+
}
|
82
|
+
|
83
|
+
/**
|
84
|
+
* @dev mints the next token to register new objects
|
85
|
+
* non-zero transferInterceptors are recorded and called during nft token transfers.
|
86
|
+
* the contract receiving such a notification may decides to revert or record the transfer
|
87
|
+
*/
|
88
|
+
function mint(
|
89
|
+
address to,
|
90
|
+
address interceptor,
|
91
|
+
string memory uri
|
92
|
+
)
|
93
|
+
public
|
94
|
+
onlyRegistry()
|
95
|
+
returns (uint256 tokenId)
|
96
|
+
{
|
97
|
+
tokenId = _getNextTokenId();
|
98
|
+
|
99
|
+
if (interceptor != address(0)) {
|
100
|
+
_interceptor[tokenId] = interceptor;
|
101
|
+
}
|
102
|
+
|
103
|
+
if (bytes(uri).length > 0) {
|
104
|
+
_uri[tokenId] = uri;
|
105
|
+
}
|
106
|
+
|
107
|
+
_safeMintWithInterceptorAddress(to, tokenId, interceptor);
|
108
|
+
}
|
109
|
+
|
110
|
+
|
111
|
+
/**
|
112
|
+
* @dev Amend the open zeppelin transferFrom function by an interceptor call if such an interceptor is defined for the nft token id.
|
113
|
+
* This allows distribution, product and pool components to be notified when distributors, policies and bundles are transferred.
|
114
|
+
*/
|
115
|
+
function transferFrom(address from, address to, uint256 tokenId) public override (IERC721, ERC721) {
|
116
|
+
// default open zeppelin implementation of transferFrom
|
117
|
+
super.transferFrom(from, to, tokenId);
|
118
|
+
|
119
|
+
if (_interceptor[tokenId] != address(0)) {
|
120
|
+
address operator = msg.sender;
|
121
|
+
ITransferInterceptor(_interceptor[tokenId]).nftTransferFrom(from, to, tokenId, operator);
|
122
|
+
}
|
123
|
+
}
|
124
|
+
|
125
|
+
|
126
|
+
function burn(uint256 tokenId) external onlyRegistry {
|
127
|
+
_requireOwned(tokenId);
|
128
|
+
_burn(tokenId);
|
129
|
+
delete _uri[tokenId];
|
130
|
+
}
|
131
|
+
|
132
|
+
function setURI(
|
133
|
+
uint256 tokenId,
|
134
|
+
string memory uri
|
135
|
+
) external onlyRegistry {
|
136
|
+
if (bytes(uri).length == 0) { revert ErrorChainNftUriEmpty(); }
|
137
|
+
if (bytes(_uri[tokenId]).length > 0) { revert ErrorChainNftUriAlreadySet(); }
|
138
|
+
|
139
|
+
_requireOwned(tokenId);
|
140
|
+
_uri[tokenId] = uri;
|
141
|
+
}
|
142
|
+
|
143
|
+
function exists(uint256 tokenId) external view returns (bool) {
|
144
|
+
return _ownerOf(tokenId) != address(0);
|
145
|
+
}
|
146
|
+
|
147
|
+
function tokenURI(
|
148
|
+
uint256 tokenId
|
149
|
+
) public view override returns (string memory) {
|
150
|
+
// gif generally does not revert for view functions
|
151
|
+
// this is an exception to keep the openzeppelin nft semantics
|
152
|
+
_requireOwned(tokenId);
|
153
|
+
return _uri[tokenId];
|
154
|
+
}
|
155
|
+
|
156
|
+
function getInterceptor(uint256 tokenId) external view returns (address) {
|
157
|
+
return _interceptor[tokenId];
|
158
|
+
}
|
159
|
+
|
160
|
+
function getRegistryAddress() external view returns (address) {
|
161
|
+
return _registry;
|
162
|
+
}
|
163
|
+
|
164
|
+
function totalMinted() external view returns (uint256) {
|
165
|
+
return _totalMinted;
|
166
|
+
}
|
167
|
+
|
168
|
+
/**
|
169
|
+
* @dev token id calculation based on an index value that is supposed
|
170
|
+
* to increase with every minted token
|
171
|
+
*
|
172
|
+
* requirement: each chain registry produces token ids that
|
173
|
+
* are guaranteed to not collide with any token id genereated
|
174
|
+
* on a different chain
|
175
|
+
*
|
176
|
+
* format concat(counter,chainid,2 digits for len-of-chain-id)
|
177
|
+
* restriction chainid up to 99 digits
|
178
|
+
* decode: from right to left:
|
179
|
+
* - 2 right most digits encode length of chainid
|
180
|
+
* - move number of digits to left as determined above (-> chainid)
|
181
|
+
* - the reminder to the left is the counter
|
182
|
+
*
|
183
|
+
* special cases
|
184
|
+
* 1101 -> decentralized insurance protocol
|
185
|
+
* 2102 -> global registry
|
186
|
+
* 2xxxxx -> chain registry, where xxxxx = <chain-part>
|
187
|
+
*
|
188
|
+
* examples
|
189
|
+
* 1101
|
190
|
+
* ^^ ^
|
191
|
+
* || +- 1-digit chain id
|
192
|
+
* |+-- chain id = 1 (mainnet)
|
193
|
+
* +-- 1st token id on mainnet
|
194
|
+
* (1 * 10 ** 1 + 1) * 100 + 1
|
195
|
+
* 42987654321010
|
196
|
+
* ^ ^ ^
|
197
|
+
* | | +- 10-digit chain id
|
198
|
+
* | +-- chain id = 9876543210 (hypothetical chainid)
|
199
|
+
* +-- 42nd token id on this chain
|
200
|
+
* (42 * 10 ** 10 + 9876543210) * 100 + 10
|
201
|
+
* (index * 10 ** digits + chainid) * 100 + digits (1 < digits < 100)
|
202
|
+
*/
|
203
|
+
function calculateTokenId(uint256 idIndex, uint256 chainId) public view returns (uint256 id) {
|
204
|
+
if(chainId == block.chainid) {
|
205
|
+
return 100 * (idIndex * _chainIdMultiplier + chainId) + _chainIdDigits;
|
206
|
+
} else {
|
207
|
+
uint256 chainIdDigits = _calculateChainIdDigits(chainId);
|
208
|
+
return 100 * (idIndex * (10 ** chainIdDigits) + chainId) + chainIdDigits;
|
209
|
+
}
|
210
|
+
}
|
211
|
+
|
212
|
+
function calculateTokenId(uint256 idIndex) public view returns (uint256) {
|
213
|
+
return 100 * (idIndex * _chainIdMultiplier + block.chainid) + _chainIdDigits;
|
214
|
+
}
|
215
|
+
|
216
|
+
function getNextTokenId() external view returns (uint256) {
|
217
|
+
return calculateTokenId(_idNext);
|
218
|
+
}
|
219
|
+
|
220
|
+
// ---------------- private functions ----------------- //
|
221
|
+
|
222
|
+
function _getNextTokenId() private returns (uint256 id) {
|
223
|
+
id = calculateTokenId(_idNext);
|
224
|
+
_idNext++;
|
225
|
+
}
|
226
|
+
|
227
|
+
function _calculateChainIdDigits(uint256 chainId) private pure returns (uint256) {
|
228
|
+
uint256 num = chainId;
|
229
|
+
uint256 digits = 0;
|
230
|
+
while (num != 0) {
|
231
|
+
digits++;
|
232
|
+
num /= 10;
|
233
|
+
}
|
234
|
+
return digits;
|
235
|
+
}
|
236
|
+
|
237
|
+
function _safeMintWithInterceptorAddress(
|
238
|
+
address to,
|
239
|
+
uint256 tokenId,
|
240
|
+
address interceptor
|
241
|
+
)
|
242
|
+
private
|
243
|
+
{
|
244
|
+
_totalMinted++;
|
245
|
+
_safeMint(to, tokenId);
|
246
|
+
|
247
|
+
emit LogTokenInterceptorAddress(tokenId, interceptor);
|
248
|
+
}
|
249
|
+
}
|
@@ -1,66 +1,166 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
|
5
|
-
function getOwner() external view returns(address owner);
|
6
|
-
}
|
4
|
+
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
7
5
|
|
8
|
-
|
6
|
+
import {IRelease} from "./IRelease.sol";
|
9
7
|
|
10
|
-
|
8
|
+
import {NftId} from "../type/NftId.sol";
|
9
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
10
|
+
import {VersionPart} from "../type/Version.sol";
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
/// @title Chain Registry interface.
|
13
|
+
/// A chain registry holds all protocol relevant objects with basic metadata.
|
14
|
+
/// Registered objects include services, instances, products, pools, policies, bundles, stakes and more.
|
15
|
+
/// Registered objects are represented by NFTs.
|
16
|
+
/// When on mainnet registry is global and keeps arbitrary number of chain registries residing on different chain ids.
|
17
|
+
/// When not on mainnet registry keeps the only object residing on different chain id (on mainnet) - global registry.
|
18
|
+
interface IRegistry is
|
19
|
+
IERC165
|
18
20
|
{
|
19
21
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
22
|
+
event LogRegistration(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
|
23
|
+
event LogServiceRegistration(VersionPart majorVersion, ObjectType domain);
|
24
|
+
event LogChainRegistryRegistration(NftId nftId, uint256 chainId, address chainRegistryAddress);
|
25
|
+
|
26
|
+
// initialize
|
27
|
+
error ErrorRegistryCallerNotDeployer();
|
28
|
+
|
29
|
+
// registerRegistry()
|
30
|
+
error ErrorRegistryNotOnMainnet(uint256 chainId);
|
31
|
+
error ErrorRegistryChainRegistryChainIdZero(NftId nftId);
|
32
|
+
error ErrorRegistryChainRegistryAddressZero(NftId nftId, uint256 chainId);
|
33
|
+
error ErrorRegistryChainRegistryNftIdInvalid(NftId nftId, uint256 chainId);
|
34
|
+
error ErrorRegistryChainRegistryAlreadyRegistered(NftId nftId, uint256 chainId);
|
28
35
|
|
29
|
-
|
30
|
-
|
36
|
+
// registerService()
|
37
|
+
error ErrorRegistryServiceAddressZero();
|
38
|
+
error ErrorRegistryServiceVersionZero(address service);
|
39
|
+
//error ErrorRegistryServiceVersionMismatch(address service, VersionPart serviceVersion, VersionPart releaseVersion);
|
40
|
+
//error ErrorRegistryServiceVersionNotDeploying(address service, VersionPart version);
|
41
|
+
error ErrorRegistryServiceDomainZero(address service, VersionPart version);
|
42
|
+
error ErrorRegistryNotService(address service, ObjectType objectType);
|
43
|
+
error ErrorRegistryServiceParentNotRegistry(address service, VersionPart version, NftId parentNftId);
|
44
|
+
error ErrorRegistryServiceDomainAlreadyRegistered(address service, VersionPart version, ObjectType domain);
|
31
45
|
|
46
|
+
// registerWithCustomTypes()
|
47
|
+
error ErrorRegistryCoreTypeRegistration();
|
32
48
|
|
33
|
-
|
49
|
+
// _register()
|
50
|
+
error ErrorRegistryGlobalRegistryAsParent(address objectAddress, ObjectType objectType);
|
51
|
+
error ErrorRegistryTypesCombinationInvalid(address objectAddress, ObjectType objectType, ObjectType parentType);
|
52
|
+
error ErrorRegistryContractAlreadyRegistered(address objectAddress);
|
34
53
|
|
35
|
-
struct
|
36
|
-
|
37
|
-
|
38
|
-
|
54
|
+
struct ObjectInfo {
|
55
|
+
NftId nftId;
|
56
|
+
NftId parentNftId;
|
57
|
+
ObjectType objectType;
|
58
|
+
bool isInterceptor;
|
39
59
|
address objectAddress;
|
40
60
|
address initialOwner;
|
61
|
+
bytes data;
|
41
62
|
}
|
42
63
|
|
43
|
-
|
44
|
-
|
45
|
-
function
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
function
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
function
|
62
|
-
|
63
|
-
function
|
64
|
-
|
65
|
-
|
66
|
-
|
64
|
+
/// @dev Registers a registry contract for a specified chain.
|
65
|
+
/// Only one chain registry may be registered per chain
|
66
|
+
function registerRegistry(
|
67
|
+
NftId nftId,
|
68
|
+
uint256 chainId,
|
69
|
+
address chainRegistryAddress
|
70
|
+
) external;
|
71
|
+
|
72
|
+
/// @dev Register a service with using the provided domain and version.
|
73
|
+
/// The function returns a newly minted service NFT ID.
|
74
|
+
/// May only be used to register services.
|
75
|
+
function registerService(
|
76
|
+
ObjectInfo memory serviceInfo,
|
77
|
+
VersionPart serviceVersion,
|
78
|
+
ObjectType serviceDomain
|
79
|
+
) external returns(NftId nftId);
|
80
|
+
|
81
|
+
/// @dev Register an object with a known core type.
|
82
|
+
/// The function returns a newly minted object NFT ID.
|
83
|
+
/// May not be used to register services.
|
84
|
+
function register(ObjectInfo memory info) external returns (NftId nftId);
|
85
|
+
|
86
|
+
/// @dev Register an object with a custom type.
|
87
|
+
/// The function returns a newly minted object NFT ID.
|
88
|
+
/// This function is reserved for GIF releases > 3.
|
89
|
+
/// May not be used to register known core types.
|
90
|
+
function registerWithCustomType(ObjectInfo memory info) external returns (NftId nftId);
|
91
|
+
|
92
|
+
function getInitialVersion() external view returns (VersionPart);
|
93
|
+
|
94
|
+
function getNextVersion() external view returns (VersionPart);
|
95
|
+
|
96
|
+
function getLatestVersion() external view returns (VersionPart);
|
97
|
+
|
98
|
+
function getReleaseInfo(VersionPart release) external view returns (IRelease.ReleaseInfo memory);
|
99
|
+
|
100
|
+
/// @dev Returns the number of supported chains.
|
101
|
+
function chainIds() external view returns (uint256);
|
102
|
+
|
103
|
+
/// @dev Returns the chain id at the specified index.
|
104
|
+
function getChainId(uint256 idx) external view returns (uint256);
|
105
|
+
|
106
|
+
/// @dev Returns the NFT ID of the registry for the specified chain.
|
107
|
+
function getRegistryNftId(uint256 chainId) external returns (NftId nftId);
|
108
|
+
|
109
|
+
function getObjectCount() external view returns (uint256);
|
110
|
+
|
111
|
+
function getNftIdForAddress(address objectAddress) external view returns (NftId nftId);
|
112
|
+
|
113
|
+
function ownerOf(NftId nftId) external view returns (address);
|
114
|
+
|
115
|
+
function isOwnerOf(NftId nftId, address expectedOwner) external view returns (bool);
|
116
|
+
|
117
|
+
function ownerOf(address contractAddress) external view returns (address);
|
118
|
+
|
119
|
+
function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory info);
|
120
|
+
|
121
|
+
function getParentNftId(NftId nftId) external view returns (NftId parentNftId);
|
122
|
+
|
123
|
+
function isObjectType(NftId nftId, ObjectType expectedObjectType) external view returns (bool);
|
124
|
+
|
125
|
+
function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool);
|
126
|
+
|
127
|
+
function getObjectAddress(NftId nftId) external view returns (address objectAddress);
|
128
|
+
|
129
|
+
/// @dev Returns the object info for the specified object address.
|
130
|
+
// MUST not be used with chain registry address (resides on different chan id)
|
131
|
+
function getObjectInfo(address object) external view returns (ObjectInfo memory info);
|
132
|
+
|
133
|
+
function isRegistered(NftId nftId) external view returns (bool);
|
134
|
+
|
135
|
+
function isRegistered(address contractAddress) external view returns (bool);
|
136
|
+
|
137
|
+
function isRegisteredService(address contractAddress) external view returns (bool);
|
138
|
+
|
139
|
+
function isRegisteredComponent(address object) external view returns (bool);
|
140
|
+
|
141
|
+
function isActiveRelease(VersionPart version) external view returns (bool);
|
142
|
+
|
143
|
+
function getServiceAddress(
|
144
|
+
ObjectType serviceDomain,
|
145
|
+
VersionPart releaseVersion
|
146
|
+
) external view returns (address serviceAddress);
|
147
|
+
|
148
|
+
function getProtocolNftId() external view returns (NftId protocolNftId);
|
149
|
+
|
150
|
+
function getNftId() external view returns (NftId nftId);
|
151
|
+
|
152
|
+
function getOwner() external view returns (address);
|
153
|
+
|
154
|
+
// TODO refactor the address getters below to contract getters
|
155
|
+
function getChainNftAddress() external view returns (address);
|
156
|
+
|
157
|
+
function getReleaseRegistryAddress() external view returns (address);
|
158
|
+
|
159
|
+
function getStakingAddress() external view returns (address);
|
160
|
+
|
161
|
+
function getTokenRegistryAddress() external view returns (address);
|
162
|
+
|
163
|
+
function getRegistryAdminAddress() external view returns (address);
|
164
|
+
|
165
|
+
function getAuthority() external view returns (address);
|
166
|
+
}
|
@@ -0,0 +1,62 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
// import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
|
+
|
6
|
+
import {NftId} from "../type/NftId.sol";
|
7
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
8
|
+
import {RoleId} from "../type/RoleId.sol";
|
9
|
+
import {IService} from "../shared/IService.sol";
|
10
|
+
import {IRegistry} from "./IRegistry.sol";
|
11
|
+
|
12
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
13
|
+
import {IComponent} from "../shared/IComponent.sol";
|
14
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
15
|
+
|
16
|
+
|
17
|
+
interface IRegistryService is
|
18
|
+
IService
|
19
|
+
{
|
20
|
+
error ErrorRegistryServiceNotRegistryOwner();
|
21
|
+
|
22
|
+
error ErrorRegistryServiceNotService(address notService);
|
23
|
+
error ErrorRegistryServiceNotInstance(address notInstance);
|
24
|
+
error ErrorRegistryServiceNotProduct(address notProduct);
|
25
|
+
error ErrorRegistryServiceNotComponent(address notComponent);
|
26
|
+
error ErrorRegistryServiceNotProductLinkedComponent(address notProductLinkedComponent);
|
27
|
+
|
28
|
+
error ErrorRegistryServiceRegisterableAddressInvalid(IRegisterable registerable, address found);
|
29
|
+
error ErrorRegistryServiceRegisterableTypeInvalid(IRegisterable registerable, ObjectType expected, ObjectType found);
|
30
|
+
error ErrorRegistryServiceRegisterableOwnerInvalid(IRegisterable registerable, address expected, address found);
|
31
|
+
error ErrorRegistryServiceRegisterableOwnerZero(IRegisterable registerable);
|
32
|
+
error ErrorRegistryServiceRegisterableOwnerRegistered(IRegisterable registerable, address owner);
|
33
|
+
error ErrorRegistryServiceRegisterableSelfRegistration(IRegisterable registerable);
|
34
|
+
|
35
|
+
error ErrorRegistryServiceObjectAddressNotZero(ObjectType objectType);
|
36
|
+
error ErrorRegistryServiceObjectTypeInvalid(ObjectType expected, ObjectType found);
|
37
|
+
error ErrorRegistryServiceObjectOwnerRegistered(ObjectType objectType, address owner);
|
38
|
+
error ErrorRegistryServiceObjectOwnerZero(ObjectType objectType);
|
39
|
+
|
40
|
+
error ErrorRegistryServiceInvalidInitialOwner(address initialOwner);
|
41
|
+
error ErrorRegistryServiceInvalidAddress(address registerableAddress);
|
42
|
+
|
43
|
+
function registerStake(IRegistry.ObjectInfo memory info)
|
44
|
+
external returns(NftId nftId);
|
45
|
+
|
46
|
+
function registerInstance(IRegisterable instance, address owner)
|
47
|
+
external returns(IRegistry.ObjectInfo memory info);
|
48
|
+
|
49
|
+
function registerProduct(IComponent product, address owner)
|
50
|
+
external returns(IRegistry.ObjectInfo memory info);
|
51
|
+
|
52
|
+
function registerProductLinkedComponent(IComponent component, ObjectType objectType, address owner)
|
53
|
+
external returns(IRegistry.ObjectInfo memory info);
|
54
|
+
|
55
|
+
function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
56
|
+
|
57
|
+
function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
58
|
+
|
59
|
+
function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
60
|
+
|
61
|
+
}
|
62
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
5
|
+
|
6
|
+
import {StateId} from "../type/StateId.sol";
|
7
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
8
|
+
import {VersionPart} from "../type/Version.sol";
|
9
|
+
|
10
|
+
/// @title Marks contracts that are linked to a specific GIF release version.
|
11
|
+
interface IRelease {
|
12
|
+
|
13
|
+
struct ReleaseInfo {
|
14
|
+
StateId state;
|
15
|
+
VersionPart version;
|
16
|
+
bytes32 salt;
|
17
|
+
IServiceAuthorization auth;
|
18
|
+
address releaseAdmin;
|
19
|
+
Timestamp activatedAt;
|
20
|
+
Timestamp disabledAt;
|
21
|
+
}
|
22
|
+
|
23
|
+
/// @dev Registers a registry contract for a specified chain.
|
24
|
+
/// Only one chain registry may be registered per chain
|
25
|
+
function getRelease() external view returns (VersionPart release);
|
26
|
+
}
|