@etherisc/gif-next 0.0.2-f1f3b2c-994 → 0.0.2-f2273b3-211
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 +27 -6
- 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 +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +163 -55
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +200 -16
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +94 -14
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +107 -15
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +2 -2
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +8 -8
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +175 -216
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +206 -27
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +113 -130
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +275 -171
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +111 -65
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +100 -112
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +148 -72
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +158 -195
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +206 -27
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +336 -295
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +203 -28
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +215 -168
- 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 +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +156 -153
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +282 -193
- 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 +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +717 -292
- 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 +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +158 -57
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +211 -82
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +386 -117
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +150 -90
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +590 -204
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +129 -157
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -45
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +445 -375
- 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 +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +3 -3
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- 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 +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +132 -173
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +180 -29
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +94 -106
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +108 -125
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +151 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +95 -41
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +107 -152
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +206 -27
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +156 -326
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +79 -101
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -135
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +94 -145
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +192 -229
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +107 -163
- 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 +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +330 -368
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +119 -69
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +130 -54
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +71 -41
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +228 -186
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +206 -27
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +272 -173
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +100 -78
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +89 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +170 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +139 -54
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +105 -52
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +211 -164
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +55 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +235 -170
- 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 +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +102 -64
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +181 -116
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +89 -51
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +224 -182
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +112 -63
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +80 -38
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +98 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
- 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 +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +142 -38
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +277 -213
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +181 -74
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -33
- 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 +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +3 -3
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +337 -65
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +12 -12
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +105 -104
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +483 -485
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +99 -73
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +55 -2
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- 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 +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -86
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +446 -276
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +94 -106
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +107 -124
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +18 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +152 -38
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +55 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
- 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 +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +113 -136
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +130 -16
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +49 -49
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +203 -206
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +3 -3
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +93 -51
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -57
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +181 -55
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +77 -39
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +130 -130
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/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 +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +62 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +44 -12
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- 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 +216 -125
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +321 -205
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +14 -8
- package/contracts/authorization/IAuthorization.sol +27 -7
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistribution.sol +15 -12
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +41 -47
- package/contracts/distribution/DistributionService.sol +100 -78
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +19 -19
- package/contracts/examples/fire/FirePool.sol +25 -10
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +40 -13
- package/contracts/examples/fire/FireProductAuthorization.sol +3 -3
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +11 -4
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +37 -7
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +49 -23
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +17 -10
- package/contracts/instance/IInstanceService.sol +9 -29
- package/contracts/instance/Instance.sol +52 -34
- package/contracts/instance/InstanceAdmin.sol +249 -100
- package/contracts/instance/InstanceAuthorizationV3.sol +54 -45
- package/contracts/instance/InstanceReader.sol +174 -32
- package/contracts/instance/InstanceService.sol +85 -146
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +10 -7
- package/contracts/instance/module/IDistribution.sol +2 -1
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +5 -16
- package/contracts/oracle/OracleService.sol +107 -78
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +33 -24
- package/contracts/pool/BasicPoolAuthorization.sol +27 -9
- package/contracts/pool/BundleService.sol +88 -154
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +15 -43
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +58 -64
- package/contracts/pool/Pool.sol +112 -120
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +436 -242
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +24 -16
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +10 -12
- package/contracts/product/BasicProductAuthorization.sol +24 -11
- package/contracts/product/ClaimService.sol +202 -151
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +26 -11
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +10 -1
- package/contracts/product/PolicyService.sol +248 -252
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +30 -26
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +106 -60
- package/contracts/product/RiskService.sol +74 -25
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +10 -11
- package/contracts/registry/IRegistry.sol +14 -15
- package/contracts/registry/IRegistryService.sol +6 -4
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +29 -6
- package/contracts/registry/RegistryAdmin.sol +132 -226
- package/contracts/registry/RegistryService.sol +40 -58
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +139 -124
- package/contracts/registry/ServiceAuthorizationV3.sol +97 -48
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +69 -118
- package/contracts/shared/ComponentService.sol +422 -371
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +27 -15
- package/contracts/shared/ContractLib.sol +224 -9
- package/contracts/shared/IComponent.sol +8 -20
- package/contracts/shared/IComponentService.sol +41 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +68 -42
- package/contracts/shared/Lifecycle.sol +7 -7
- package/contracts/shared/NftOwnable.sol +26 -6
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +53 -19
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +9 -31
- package/contracts/shared/TokenHandler.sol +274 -72
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +6 -10
- package/contracts/staking/IStakingService.sol +12 -4
- package/contracts/staking/StakeManagerLib.sol +69 -20
- package/contracts/staking/Staking.sol +73 -41
- package/contracts/staking/StakingReader.sol +1 -16
- package/contracts/staking/StakingService.sol +70 -24
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +48 -21
- package/contracts/type/RiskId.sol +23 -6
- package/contracts/type/RoleId.sol +23 -15
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +9 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +2 -1
- package/package.json +3 -3
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/module/IAccess.sol +0 -46
@@ -9,17 +9,15 @@ import {ObjectType} from "../type/ObjectType.sol";
|
|
9
9
|
import {RoleId} from "../type/RoleId.sol";
|
10
10
|
|
11
11
|
interface IService is
|
12
|
+
IAccessManaged,
|
12
13
|
IRegisterable,
|
13
|
-
IVersionable
|
14
|
-
IAccessManaged
|
14
|
+
IVersionable
|
15
15
|
{
|
16
|
-
error ErrorServiceNotImplemented();
|
17
|
-
|
18
16
|
/// @dev returns the domain for this service.
|
19
17
|
/// In any GIF release only one service for any given domain may be deployed.
|
20
18
|
function getDomain() external pure returns(ObjectType serviceDomain);
|
21
19
|
|
22
20
|
/// @dev returns the GIF release specific role id.
|
23
21
|
/// These role ids are used to authorize service to service communication.
|
24
|
-
function getRoleId() external
|
22
|
+
function getRoleId() external view returns(RoleId serviceRoleId);
|
25
23
|
}
|
@@ -17,10 +17,10 @@ import {IInstance} from "../instance/IInstance.sol";
|
|
17
17
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
18
18
|
import {IRegistry} from "../registry/IRegistry.sol";
|
19
19
|
import {NftId} from "../type/NftId.sol";
|
20
|
-
import {ObjectType, COMPONENT, INSTANCE} from "../type/ObjectType.sol";
|
20
|
+
import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
|
21
21
|
import {VersionPart} from "../type/Version.sol";
|
22
22
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
23
|
-
import {IAccess} from "../
|
23
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
24
24
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
25
25
|
import {VersionPart} from "../type/Version.sol";
|
26
26
|
|
@@ -40,37 +40,27 @@ abstract contract InstanceLinkedComponent is
|
|
40
40
|
IComponentService _componentService;
|
41
41
|
}
|
42
42
|
|
43
|
-
function lock() external onlyOwner {
|
44
|
-
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(true);
|
45
|
-
}
|
46
|
-
|
47
|
-
function unlock() external onlyOwner {
|
48
|
-
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(false);
|
49
|
-
}
|
50
|
-
|
51
|
-
function getInstance() public view override returns (IInstance instance) {
|
52
|
-
return _getInstanceLinkedComponentStorage()._instance;
|
53
|
-
}
|
54
|
-
|
55
|
-
function getProductNftId() public view override returns (NftId productNftId) {
|
56
|
-
return getComponentInfo().productNftId;
|
57
|
-
}
|
58
|
-
|
59
|
-
function getAuthorization() external view returns (IAuthorization authorization) {
|
60
|
-
return _getInstanceLinkedComponentStorage()._initialAuthorization;
|
61
|
-
}
|
62
|
-
|
63
43
|
/// @inheritdoc IInstanceLinkedComponent
|
64
44
|
function withdrawFees(Amount amount)
|
65
45
|
external
|
66
46
|
virtual
|
67
|
-
onlyOwner()
|
68
47
|
restricted()
|
48
|
+
onlyOwner()
|
69
49
|
returns (Amount withdrawnAmount)
|
70
50
|
{
|
71
51
|
return _withdrawFees(amount);
|
72
52
|
}
|
73
53
|
|
54
|
+
/// @inheritdoc IInstanceLinkedComponent
|
55
|
+
function getInstance() public view override returns (IInstance instance) {
|
56
|
+
return _getInstanceLinkedComponentStorage()._instance;
|
57
|
+
}
|
58
|
+
|
59
|
+
/// @inheritdoc IInstanceLinkedComponent
|
60
|
+
function getAuthorization() external view returns (IAuthorization authorization) {
|
61
|
+
return _getInstanceLinkedComponentStorage()._initialAuthorization;
|
62
|
+
}
|
63
|
+
|
74
64
|
function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
|
75
65
|
assembly {
|
76
66
|
$.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
|
@@ -79,50 +69,94 @@ abstract contract InstanceLinkedComponent is
|
|
79
69
|
|
80
70
|
function _initializeInstanceLinkedComponent(
|
81
71
|
address registry,
|
82
|
-
NftId
|
72
|
+
NftId parentNftId,
|
83
73
|
string memory name,
|
84
74
|
address token,
|
85
75
|
ObjectType componentType,
|
86
76
|
IAuthorization authorization,
|
87
77
|
bool isInterceptor,
|
88
78
|
address initialOwner,
|
89
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
90
79
|
bytes memory componentData // data that will saved with the component info in the instance store
|
91
80
|
)
|
92
81
|
internal
|
93
82
|
virtual
|
94
83
|
onlyInitializing()
|
95
84
|
{
|
85
|
+
// validate registry, nft ids and get parent nft id
|
86
|
+
NftId instanceNftId = _checkAndGetInstanceNftId(
|
87
|
+
registry,
|
88
|
+
parentNftId,
|
89
|
+
componentType);
|
90
|
+
|
96
91
|
// set and check linked instance
|
97
92
|
InstanceLinkedComponentStorage storage $ = _getInstanceLinkedComponentStorage();
|
98
93
|
$._instance = IInstance(
|
99
94
|
IRegistry(registry).getObjectAddress(instanceNftId));
|
100
95
|
|
101
|
-
|
102
|
-
revert ErrorComponentNotInstance(instanceNftId);
|
103
|
-
}
|
104
|
-
|
96
|
+
// set component specific parameters
|
105
97
|
_initializeComponent(
|
106
|
-
$._instance.authority(),
|
98
|
+
$._instance.authority(), // instance linked components need to point to instance admin
|
107
99
|
registry,
|
108
|
-
|
100
|
+
parentNftId,
|
109
101
|
name,
|
110
102
|
token,
|
111
103
|
componentType,
|
112
104
|
isInterceptor,
|
113
105
|
initialOwner,
|
114
|
-
|
106
|
+
"", // registry data
|
115
107
|
componentData);
|
116
108
|
|
117
|
-
// set
|
109
|
+
// set instance linked specific parameters
|
118
110
|
$._instanceReader = $._instance.getInstanceReader();
|
119
111
|
$._initialAuthorization = authorization;
|
120
112
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
121
113
|
|
114
|
+
// register interfaces
|
122
115
|
_registerInterface(type(IAccessManaged).interfaceId);
|
123
116
|
_registerInterface(type(IInstanceLinkedComponent).interfaceId);
|
124
117
|
}
|
125
118
|
|
119
|
+
|
120
|
+
function _checkAndGetInstanceNftId(
|
121
|
+
address registryAddress,
|
122
|
+
NftId parentNftId,
|
123
|
+
ObjectType componentType
|
124
|
+
)
|
125
|
+
internal
|
126
|
+
view
|
127
|
+
returns (NftId instanceNftId)
|
128
|
+
{
|
129
|
+
// if product, then parent is already instance
|
130
|
+
if (componentType == PRODUCT()) {
|
131
|
+
_checkAndGetRegistry(registryAddress, parentNftId, INSTANCE());
|
132
|
+
return parentNftId;
|
133
|
+
}
|
134
|
+
|
135
|
+
// if not product parent is product, and parent of product is instance
|
136
|
+
IRegistry registry = _checkAndGetRegistry(registryAddress, parentNftId, PRODUCT());
|
137
|
+
return registry.getParentNftId(parentNftId);
|
138
|
+
}
|
139
|
+
|
140
|
+
/// @dev checks the and gets registry.
|
141
|
+
/// validates registry using a provided nft id and expected object type.
|
142
|
+
function _checkAndGetRegistry(
|
143
|
+
address registryAddress,
|
144
|
+
NftId objectNftId,
|
145
|
+
ObjectType requiredType
|
146
|
+
)
|
147
|
+
internal
|
148
|
+
view
|
149
|
+
returns (IRegistry registry)
|
150
|
+
{
|
151
|
+
registry = IRegistry(registryAddress);
|
152
|
+
IRegistry.ObjectInfo memory info = registry.getObjectInfo(objectNftId);
|
153
|
+
|
154
|
+
if (info.objectType != requiredType) {
|
155
|
+
revert ErrorInstanceLinkedComponentTypeMismatch(requiredType, info.objectType);
|
156
|
+
}
|
157
|
+
}
|
158
|
+
|
159
|
+
|
126
160
|
/// @dev for instance linked components the wallet address stored in the instance store.
|
127
161
|
/// updating needs to go throug component service
|
128
162
|
function _setWallet(address newWallet) internal virtual override onlyOwner {
|
@@ -139,7 +173,7 @@ abstract contract InstanceLinkedComponent is
|
|
139
173
|
info = _getInstanceReader().getComponentInfo(getNftId());
|
140
174
|
|
141
175
|
// check if also registered with instance
|
142
|
-
if (info.
|
176
|
+
if (address(info.tokenHandler) != address(0)) {
|
143
177
|
return info;
|
144
178
|
}
|
145
179
|
}
|
@@ -160,12 +194,4 @@ abstract contract InstanceLinkedComponent is
|
|
160
194
|
{
|
161
195
|
return _getInstanceLinkedComponentStorage()._componentService.withdrawFees(amount);
|
162
196
|
}
|
163
|
-
|
164
|
-
|
165
|
-
/// @dev returns the service address for the specified domain
|
166
|
-
/// gets address via lookup from registry using the major version form the linked instance
|
167
|
-
function _getServiceAddress(ObjectType domain) internal view returns (address service) {
|
168
|
-
VersionPart majorVersion = _getInstanceLinkedComponentStorage()._instance.getMajorVersion();
|
169
|
-
return getRegistry().getServiceAddress(domain, majorVersion);
|
170
|
-
}
|
171
197
|
}
|
@@ -51,7 +51,7 @@ abstract contract Lifecycle is
|
|
51
51
|
function checkTransition(
|
52
52
|
StateId stateId,
|
53
53
|
ObjectType objectType,
|
54
|
-
StateId
|
54
|
+
StateId expectedFromId,
|
55
55
|
StateId toId
|
56
56
|
)
|
57
57
|
public
|
@@ -62,17 +62,17 @@ abstract contract Lifecycle is
|
|
62
62
|
revert ErrorNoLifecycle(address(this), objectType);
|
63
63
|
}
|
64
64
|
|
65
|
-
// revert if current state is not `from` state
|
66
|
-
if(stateId !=
|
67
|
-
revert ErrorFromStateMissmatch(address(this), objectType, stateId,
|
65
|
+
// revert if current state is not expected `from` state
|
66
|
+
if(stateId != expectedFromId) {
|
67
|
+
revert ErrorFromStateMissmatch(address(this), objectType, stateId, expectedFromId);
|
68
68
|
}
|
69
|
-
|
69
|
+
|
70
70
|
// enforce valid state transition
|
71
|
-
if (!_isValidTransition[objectType][
|
71
|
+
if (!_isValidTransition[objectType][stateId][toId]) {
|
72
72
|
revert ErrorInvalidStateTransition(
|
73
73
|
address(this),
|
74
74
|
objectType,
|
75
|
-
|
75
|
+
stateId,
|
76
76
|
toId
|
77
77
|
);
|
78
78
|
}
|
@@ -4,6 +4,7 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {InitializableERC165} from "./InitializableERC165.sol";
|
5
5
|
import {INftOwnable} from "./INftOwnable.sol";
|
6
6
|
import {NftId} from "../type/NftId.sol";
|
7
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
7
8
|
import {RegistryLinked} from "./RegistryLinked.sol";
|
8
9
|
|
9
10
|
contract NftOwnable is
|
@@ -27,18 +28,36 @@ contract NftOwnable is
|
|
27
28
|
_;
|
28
29
|
}
|
29
30
|
|
31
|
+
modifier onlyNftOwner(NftId nftId) {
|
32
|
+
if(!getRegistry().isOwnerOf(nftId, msg.sender)) {
|
33
|
+
revert ErrorNftOwnableNotOwner(msg.sender);
|
34
|
+
}
|
35
|
+
_;
|
36
|
+
}
|
37
|
+
|
38
|
+
modifier onlyNftOfType(NftId nftId, ObjectType expectedObjectType) {
|
39
|
+
_checkNftType(nftId, expectedObjectType);
|
40
|
+
_;
|
41
|
+
}
|
42
|
+
|
43
|
+
function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
|
44
|
+
if(!getRegistry().isObjectType(nftId, expectedObjectType)) {
|
45
|
+
revert ErrorNftOwnableInvalidType(nftId, expectedObjectType);
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
30
49
|
|
31
|
-
/// @dev
|
32
|
-
// used in
|
33
|
-
function
|
34
|
-
address
|
35
|
-
address
|
50
|
+
/// @dev Initialization for upgradable contracts.
|
51
|
+
// used in __Registerable_init, ProxyManager._preDeployChecksAndSetup
|
52
|
+
function __NftOwnable_init(
|
53
|
+
address registry,
|
54
|
+
address initialOwner
|
36
55
|
)
|
37
56
|
internal
|
38
57
|
virtual
|
39
58
|
onlyInitializing()
|
40
59
|
{
|
41
|
-
|
60
|
+
__RegistryLinked_init(registry);
|
42
61
|
_initializeERC165();
|
43
62
|
|
44
63
|
if(initialOwner == address(0)) {
|
@@ -100,6 +119,7 @@ contract NftOwnable is
|
|
100
119
|
|
101
120
|
|
102
121
|
function _getNftOwnableStorage() private pure returns (NftOwnableStorage storage $) {
|
122
|
+
// solhint-disable-next-line no-inline-assembly
|
103
123
|
assembly {
|
104
124
|
$.slot := NFT_OWNABLE_STORAGE_LOCATION_V1
|
105
125
|
}
|
@@ -1,16 +1,22 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
6
|
|
7
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
8
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
6
9
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
7
10
|
import {NftOwnable} from "../shared/NftOwnable.sol";
|
8
11
|
import {ObjectType} from "../type/ObjectType.sol";
|
12
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
9
13
|
|
10
14
|
import {IRegistry} from "../registry/IRegistry.sol";
|
11
15
|
import {IRegisterable} from "./IRegisterable.sol";
|
16
|
+
import {IRelease} from "../registry/IRelease.sol";
|
12
17
|
|
13
|
-
contract Registerable is
|
18
|
+
abstract contract Registerable is
|
19
|
+
AccessManagedUpgradeable,
|
14
20
|
NftOwnable,
|
15
21
|
IRegisterable
|
16
22
|
{
|
@@ -20,50 +26,71 @@ contract Registerable is
|
|
20
26
|
struct RegisterableStorage {
|
21
27
|
NftId _parentNftId;
|
22
28
|
ObjectType _objectType;
|
29
|
+
VersionPart _release;
|
23
30
|
bool _isInterceptor;
|
24
31
|
bytes _data;
|
25
32
|
}
|
26
33
|
|
27
|
-
|
28
|
-
|
34
|
+
modifier onlyActive() {
|
35
|
+
if (!isActive()) {
|
36
|
+
revert ErrorRegisterableNotActive();
|
37
|
+
}
|
38
|
+
_;
|
39
|
+
}
|
40
|
+
|
41
|
+
function __Registerable_init(
|
42
|
+
address authority,
|
43
|
+
address registry,
|
29
44
|
NftId parentNftId,
|
30
45
|
ObjectType objectType,
|
31
46
|
bool isInterceptor,
|
32
47
|
address initialOwner,
|
33
|
-
bytes memory
|
48
|
+
bytes memory data // writeonly data that will saved in the object info record of the registry
|
34
49
|
)
|
35
50
|
internal
|
36
51
|
virtual
|
37
52
|
onlyInitializing()
|
38
53
|
{
|
39
|
-
|
40
|
-
|
41
|
-
registryAddress);
|
42
|
-
|
43
|
-
RegisterableStorage storage $;
|
44
|
-
assembly {
|
45
|
-
$.slot := REGISTERABLE_LOCATION_V1
|
54
|
+
if (!ContractLib.isAuthority(authority)) {
|
55
|
+
revert ErrorAuthorityInvalid(authority);
|
46
56
|
}
|
47
57
|
|
58
|
+
__AccessManaged_init(authority);
|
59
|
+
__NftOwnable_init(registry, initialOwner);
|
60
|
+
|
61
|
+
RegisterableStorage storage $ = _getRegisterableStorage();
|
48
62
|
$._parentNftId = parentNftId;
|
49
63
|
$._objectType = objectType;
|
64
|
+
$._release = AccessManagerCloneable(authority).getRelease();
|
50
65
|
$._isInterceptor = isInterceptor;
|
51
|
-
$._data =
|
66
|
+
$._data = data;
|
67
|
+
|
68
|
+
_registerInterface(type(IAccessManaged).interfaceId);
|
69
|
+
}
|
70
|
+
|
71
|
+
|
72
|
+
/// @inheritdoc IRegisterable
|
73
|
+
function isActive() public virtual view returns (bool active) {
|
74
|
+
return !AccessManagerCloneable(authority()).isTargetClosed(address(this));
|
75
|
+
}
|
76
|
+
|
77
|
+
|
78
|
+
/// @inheritdoc IRelease
|
79
|
+
function getRelease() public virtual view returns (VersionPart release) {
|
80
|
+
RegisterableStorage storage $ = _getRegisterableStorage();
|
81
|
+
return $._release;
|
52
82
|
}
|
53
83
|
|
54
84
|
|
85
|
+
/// @inheritdoc IRegisterable
|
55
86
|
function getInitialInfo()
|
56
87
|
public
|
57
88
|
view
|
58
89
|
virtual
|
59
90
|
returns (IRegistry.ObjectInfo memory info)
|
60
91
|
{
|
61
|
-
RegisterableStorage storage
|
62
|
-
|
63
|
-
$.slot := REGISTERABLE_LOCATION_V1
|
64
|
-
}
|
65
|
-
|
66
|
-
info = IRegistry.ObjectInfo(
|
92
|
+
RegisterableStorage storage $ = _getRegisterableStorage();
|
93
|
+
return IRegistry.ObjectInfo(
|
67
94
|
NftIdLib.zero(),
|
68
95
|
$._parentNftId,
|
69
96
|
$._objectType,
|
@@ -72,4 +99,11 @@ contract Registerable is
|
|
72
99
|
getOwner(),
|
73
100
|
$._data);
|
74
101
|
}
|
102
|
+
|
103
|
+
|
104
|
+
function _getRegisterableStorage() private pure returns (RegisterableStorage storage $) {
|
105
|
+
assembly {
|
106
|
+
$.slot := REGISTERABLE_LOCATION_V1
|
107
|
+
}
|
108
|
+
}
|
75
109
|
}
|
@@ -2,6 +2,8 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
|
+
|
6
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
5
7
|
import {IRegistry} from "../registry/IRegistry.sol";
|
6
8
|
import {IRegistryLinked} from "./IRegistryLinked.sol";
|
7
9
|
|
@@ -15,26 +17,18 @@ contract RegistryLinked is
|
|
15
17
|
|
16
18
|
/// @dev initialization for upgradable contracts
|
17
19
|
// used in _initializeRegisterable
|
18
|
-
function
|
19
|
-
address
|
20
|
+
function __RegistryLinked_init(
|
21
|
+
address registry
|
20
22
|
)
|
21
23
|
internal
|
22
24
|
virtual
|
23
25
|
onlyInitializing()
|
24
26
|
{
|
25
|
-
if (
|
26
|
-
revert ErrorNotRegistry(
|
27
|
+
if (!ContractLib.isRegistry(registry)) {
|
28
|
+
revert ErrorNotRegistry(registry);
|
27
29
|
}
|
28
30
|
|
29
|
-
_registry = IRegistry(
|
30
|
-
|
31
|
-
try _registry.supportsInterface(type(IRegistry).interfaceId) returns (bool isRegistry) {
|
32
|
-
if (!isRegistry) {
|
33
|
-
revert ErrorNotRegistry(registryAddress);
|
34
|
-
}
|
35
|
-
} catch {
|
36
|
-
revert ErrorNotRegistry(registryAddress);
|
37
|
-
}
|
31
|
+
_registry = IRegistry(registry);
|
38
32
|
}
|
39
33
|
|
40
34
|
|
@@ -1,7 +1,6 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
5
|
import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
|
7
6
|
|
@@ -19,17 +18,13 @@ import {Versionable} from "../upgradeability/Versionable.sol";
|
|
19
18
|
abstract contract Service is
|
20
19
|
Registerable,
|
21
20
|
Versionable,
|
22
|
-
AccessManagedUpgradeable,
|
23
21
|
ReentrancyGuardUpgradeable,
|
24
22
|
IService
|
25
23
|
{
|
26
24
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
function _initializeService(
|
31
|
-
address registry,
|
25
|
+
function __Service_init(
|
32
26
|
address authority, // real authority for registry service adress(0) for other services
|
27
|
+
address registry,
|
33
28
|
address initialOwner
|
34
29
|
)
|
35
30
|
internal
|
@@ -38,17 +33,8 @@ abstract contract Service is
|
|
38
33
|
{
|
39
34
|
__ReentrancyGuard_init();
|
40
35
|
|
41
|
-
|
42
|
-
|
43
|
-
__AccessManaged_init(authority);
|
44
|
-
} else {
|
45
|
-
address registryServiceAddress = _getServiceAddress(REGISTRY());
|
46
|
-
|
47
|
-
// copy authority from already registered registry services
|
48
|
-
__AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
|
49
|
-
}
|
50
|
-
|
51
|
-
_initializeRegisterable(
|
36
|
+
__Registerable_init(
|
37
|
+
authority,
|
52
38
|
registry,
|
53
39
|
IRegistry(registry).getNftId(),
|
54
40
|
SERVICE(),
|
@@ -56,8 +42,6 @@ abstract contract Service is
|
|
56
42
|
initialOwner,
|
57
43
|
""); // data
|
58
44
|
|
59
|
-
|
60
|
-
_registerInterface(type(IAccessManaged).interfaceId);
|
61
45
|
_registerInterface(type(IService).interfaceId);
|
62
46
|
}
|
63
47
|
|
@@ -65,23 +49,17 @@ abstract contract Service is
|
|
65
49
|
return _getDomain();
|
66
50
|
}
|
67
51
|
|
68
|
-
function
|
69
|
-
return
|
52
|
+
function getVersion() public pure virtual override (IVersionable, Versionable) returns(Version) {
|
53
|
+
return VersionLib.toVersion(3, 0, 0);
|
70
54
|
}
|
71
55
|
|
72
|
-
|
73
|
-
|
74
|
-
public
|
75
|
-
pure
|
76
|
-
virtual override (IVersionable, Versionable)
|
77
|
-
returns(Version)
|
78
|
-
{
|
79
|
-
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
56
|
+
function getRoleId() external virtual view returns(RoleId serviceRoleId) {
|
57
|
+
return RoleIdLib.roleForTypeAndVersion(_getDomain(), getRelease());
|
80
58
|
}
|
81
59
|
|
82
60
|
function _getDomain() internal virtual pure returns (ObjectType);
|
83
61
|
|
84
62
|
function _getServiceAddress(ObjectType domain) internal view returns (address) {
|
85
|
-
return getRegistry().getServiceAddress(domain,
|
63
|
+
return getRegistry().getServiceAddress(domain, getRelease());
|
86
64
|
}
|
87
65
|
}
|