@etherisc/gif-next 0.0.2-96b5b72-170 → 0.0.2-97a9fc1-165
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 +77 -10
- 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 +1494 -0
- 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/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +615 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1224 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -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 +1230 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +156 -592
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +471 -447
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +200 -112
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +170 -331
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +340 -109
- 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 +644 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -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 +1431 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -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 +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2432 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -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 +261 -83
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +274 -88
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +273 -196
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2036 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1389 -500
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +308 -239
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +161 -83
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1419 -528
- 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 +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- 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 +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/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 +632 -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 +644 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +333 -360
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +196 -92
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +215 -70
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +219 -418
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +509 -356
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +227 -618
- 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 +639 -695
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +200 -104
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +205 -244
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +170 -78
- 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 +644 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +442 -332
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +204 -104
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +155 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +327 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +399 -69
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +195 -82
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +372 -226
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +100 -62
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +446 -394
- 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 +183 -115
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +265 -318
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +193 -97
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +404 -494
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +462 -56
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +251 -127
- 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 +905 -121
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2018 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +303 -245
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +159 -81
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -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 +1337 -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 +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +315 -139
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +178 -194
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1146 -245
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -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 +597 -0
- 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 +209 -40
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1180 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +172 -110
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +46 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +23 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +154 -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 +74 -2
- 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 +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +173 -260
- 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 +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +26 -55
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -90
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +67 -102
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- 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 +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1186 -181
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +684 -62
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1356 -293
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -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 +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +222 -66
- 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 +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +762 -179
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +177 -73
- 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 +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +121 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +39 -34
- 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 +66 -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 +153 -4
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +283 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -2
- 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 +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- 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 +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
- 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 +120 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- 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/{shared → upgradeability}/Versionable.sol/Versionable.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 +704 -0
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +365 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +170 -0
- package/contracts/authorization/IAuthorization.sol +80 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +143 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
- package/contracts/distribution/Distribution.sol +133 -172
- package/contracts/distribution/DistributionService.sol +233 -197
- package/contracts/distribution/DistributionServiceManager.sol +13 -25
- package/contracts/distribution/IDistributionComponent.sol +20 -48
- package/contracts/distribution/IDistributionService.sol +45 -29
- 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 +437 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +85 -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 +76 -48
- package/contracts/instance/IInstanceService.sol +48 -37
- package/contracts/instance/Instance.sol +195 -128
- package/contracts/instance/InstanceAdmin.sol +450 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
- package/contracts/instance/InstanceReader.sol +358 -76
- package/contracts/instance/InstanceService.sol +327 -173
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +151 -64
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- 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 +1 -4
- package/contracts/instance/module/IComponents.sol +24 -14
- package/contracts/instance/module/IDistribution.sol +5 -3
- package/contracts/instance/module/IPolicy.sol +33 -26
- package/contracts/instance/module/IRisk.sol +3 -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 +237 -224
- package/contracts/pool/BundleServiceManager.sol +13 -25
- package/contracts/pool/IBundleService.sol +35 -38
- package/contracts/pool/IPoolComponent.sol +21 -73
- package/contracts/pool/IPoolService.sol +107 -56
- package/contracts/pool/Pool.sol +210 -167
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +610 -256
- package/contracts/pool/PoolServiceManager.sol +12 -24
- package/contracts/product/ApplicationService.sol +173 -85
- package/contracts/product/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +51 -0
- package/contracts/product/BasicProductAuthorization.sol +56 -0
- package/contracts/product/ClaimService.sol +373 -183
- package/contracts/product/ClaimServiceManager.sol +12 -9
- package/contracts/product/IApplicationService.sol +10 -3
- package/contracts/product/IClaimService.sol +48 -6
- package/contracts/product/IPolicyService.sol +54 -39
- package/contracts/product/IPricingService.sol +14 -11
- package/contracts/product/IProductComponent.sol +30 -9
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +522 -234
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +12 -27
- package/contracts/product/PricingService.sol +117 -83
- package/contracts/product/PricingServiceManager.sol +12 -24
- package/contracts/product/Product.sol +236 -146
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -39
- package/contracts/registry/IRegistry.sol +90 -34
- package/contracts/registry/IRegistryService.sol +28 -35
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +444 -219
- package/contracts/registry/RegistryAdmin.sol +258 -0
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +74 -137
- package/contracts/registry/RegistryServiceManager.sol +23 -30
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +517 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +331 -0
- package/contracts/registry/TokenRegistry.sol +261 -64
- package/contracts/shared/Component.sol +144 -94
- package/contracts/shared/ComponentService.sol +634 -95
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +128 -0
- package/contracts/shared/ContractLib.sol +281 -0
- package/contracts/shared/IComponent.sol +24 -21
- package/contracts/shared/IComponentService.sol +110 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -32
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +3 -1
- package/contracts/shared/IPolicyHolder.sol +12 -17
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +11 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
- package/contracts/shared/InstanceLinkedComponent.sol +117 -191
- package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +33 -24
- package/contracts/shared/PolicyHolder.sol +18 -50
- package/contracts/shared/Registerable.sol +54 -23
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +33 -40
- package/contracts/shared/TokenHandler.sol +310 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +154 -9
- package/contracts/staking/IStakingService.sol +107 -40
- package/contracts/staking/Staking.sol +506 -25
- package/contracts/staking/StakingLib.sol +281 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +24 -18
- package/contracts/staking/StakingReader.sol +180 -0
- package/contracts/staking/StakingService.sol +308 -48
- package/contracts/staking/StakingServiceManager.sol +12 -8
- package/contracts/staking/StakingStore.sol +606 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +44 -3
- package/contracts/type/Blocknumber.sol +26 -3
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +17 -16
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +21 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +191 -63
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +39 -7
- package/contracts/type/RoleId.sol +118 -68
- package/contracts/type/Seconds.sol +48 -1
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +41 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +16 -7
- package/contracts/type/UFixed.sol +40 -121
- package/contracts/type/Version.sol +58 -7
- package/contracts/{shared → upgradeability}/ProxyManager.sol +90 -27
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +12 -8
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -864
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -640
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -620
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/base/Lifecycle.sol +0 -121
- package/contracts/instance/base/ObjectManager.sol +0 -82
- package/contracts/instance/module/IAccess.sol +0 -54
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/product/IProductService.sol +0 -40
- package/contracts/product/ProductService.sol +0 -210
- package/contracts/product/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -207
- package/contracts/registry/ReleaseManager.sol +0 -360
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -6,266 +6,192 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
6
6
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
7
7
|
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
8
8
|
|
9
|
+
import {Amount} from "../type/Amount.sol";
|
10
|
+
import {Component} from "./Component.sol";
|
11
|
+
import {IComponentService} from "./IComponentService.sol";
|
9
12
|
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
13
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
10
14
|
import {IComponents} from "../instance/module/IComponents.sol";
|
11
15
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
12
16
|
import {IInstance} from "../instance/IInstance.sol";
|
13
|
-
import {InstanceAccessManager} from "../instance/InstanceAccessManager.sol";
|
14
17
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
15
18
|
import {IRegistry} from "../registry/IRegistry.sol";
|
16
19
|
import {NftId} from "../type/NftId.sol";
|
17
|
-
import {ObjectType, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
|
20
|
+
import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
|
18
21
|
import {VersionPart} from "../type/Version.sol";
|
19
|
-
import {Registerable} from "../shared/Registerable.sol";
|
20
22
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
21
|
-
import {IAccess} from "../
|
23
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
22
24
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
23
25
|
import {VersionPart} from "../type/Version.sol";
|
24
26
|
|
25
|
-
// TODO discuss to inherit from oz accessmanaged
|
26
27
|
// then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
|
27
28
|
// same pattern as for Service which is also upgradeable
|
28
29
|
abstract contract InstanceLinkedComponent is
|
29
|
-
|
30
|
-
AccessManagedUpgradeable,
|
30
|
+
Component,
|
31
31
|
IInstanceLinkedComponent
|
32
32
|
{
|
33
33
|
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Component.sol")) - 1)) & ~bytes32(uint256(0xff));
|
34
|
-
bytes32 public constant
|
34
|
+
bytes32 public constant INSTANCE_LINKED_COMPONENT_LOCATION_V1 = 0xffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f00;
|
35
35
|
|
36
|
-
struct
|
37
|
-
string _name; // unique (per instance) component name
|
38
|
-
IERC20Metadata _token; // token for this component
|
36
|
+
struct InstanceLinkedComponentStorage {
|
39
37
|
IInstance _instance; // instance for this component
|
40
|
-
address _wallet; // wallet for this component (default = component contract itself)
|
41
38
|
InstanceReader _instanceReader; // instance reader for this component
|
42
|
-
|
43
|
-
|
39
|
+
IAuthorization _initialAuthorization;
|
40
|
+
IComponentService _componentService;
|
44
41
|
}
|
45
42
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
43
|
+
/// @inheritdoc IInstanceLinkedComponent
|
44
|
+
function withdrawFees(Amount amount)
|
45
|
+
external
|
46
|
+
virtual
|
47
|
+
restricted()
|
48
|
+
onlyOwner()
|
49
|
+
returns (Amount withdrawnAmount)
|
50
|
+
{
|
51
|
+
return _withdrawFees(amount);
|
52
|
+
}
|
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;
|
50
62
|
}
|
51
63
|
|
52
|
-
|
53
|
-
|
54
|
-
|
64
|
+
function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
|
65
|
+
assembly {
|
66
|
+
$.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
|
55
67
|
}
|
56
|
-
_;
|
57
68
|
}
|
58
69
|
|
59
|
-
function
|
70
|
+
function _initializeInstanceLinkedComponent(
|
60
71
|
address registry,
|
61
|
-
NftId
|
72
|
+
NftId parentNftId,
|
62
73
|
string memory name,
|
63
74
|
address token,
|
64
75
|
ObjectType componentType,
|
76
|
+
IAuthorization authorization,
|
65
77
|
bool isInterceptor,
|
66
78
|
address initialOwner,
|
67
|
-
bytes memory
|
79
|
+
bytes memory componentData // data that will saved with the component info in the instance store
|
68
80
|
)
|
69
|
-
|
81
|
+
internal
|
70
82
|
virtual
|
71
83
|
onlyInitializing()
|
72
84
|
{
|
73
|
-
|
85
|
+
// validate registry, nft ids and get parent nft id
|
86
|
+
NftId instanceNftId = _checkAndGetInstanceNftId(
|
87
|
+
registry,
|
88
|
+
parentNftId,
|
89
|
+
componentType);
|
74
90
|
|
75
91
|
// set and check linked instance
|
76
|
-
|
92
|
+
InstanceLinkedComponentStorage storage $ = _getInstanceLinkedComponentStorage();
|
77
93
|
$._instance = IInstance(
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
94
|
+
IRegistry(registry).getObjectAddress(instanceNftId));
|
95
|
+
|
96
|
+
// set component specific parameters
|
97
|
+
_initializeComponent(
|
98
|
+
$._instance.authority(), // instance linked components need to point to instance admin
|
99
|
+
registry,
|
100
|
+
parentNftId,
|
101
|
+
name,
|
102
|
+
token,
|
103
|
+
componentType,
|
104
|
+
isInterceptor,
|
105
|
+
initialOwner,
|
106
|
+
"", // registry data
|
107
|
+
componentData);
|
108
|
+
|
109
|
+
// set instance linked specific parameters
|
90
110
|
$._instanceReader = $._instance.getInstanceReader();
|
91
|
-
$.
|
92
|
-
$.
|
93
|
-
|
94
|
-
registerInterface(type(IAccessManaged).interfaceId);
|
95
|
-
registerInterface(type(IInstanceLinkedComponent).interfaceId);
|
96
|
-
}
|
111
|
+
$._initialAuthorization = authorization;
|
112
|
+
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
97
113
|
|
98
|
-
|
99
|
-
|
114
|
+
// register interfaces
|
115
|
+
_registerInterface(type(IAccessManaged).interfaceId);
|
116
|
+
_registerInterface(type(IInstanceLinkedComponent).interfaceId);
|
100
117
|
}
|
101
|
-
|
102
|
-
function unlock() external onlyOwner {
|
103
|
-
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(false);
|
104
|
-
}
|
105
|
-
|
106
|
-
function approveTokenHandler(uint256 spendingLimitAmount) external onlyOwner {
|
107
|
-
IComponents.ComponentInfo memory info = getComponentInfo();
|
108
118
|
|
109
|
-
if(info.wallet != address(this)) {
|
110
|
-
revert ErrorComponentWalletNotComponent();
|
111
|
-
}
|
112
119
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
external
|
122
|
-
override
|
123
|
-
onlyOwner
|
120
|
+
function _checkAndGetInstanceNftId(
|
121
|
+
address registryAddress,
|
122
|
+
NftId parentNftId,
|
123
|
+
ObjectType componentType
|
124
|
+
)
|
125
|
+
internal
|
126
|
+
view
|
127
|
+
returns (NftId instanceNftId)
|
124
128
|
{
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
// checks
|
131
|
-
if (newWallet == address(0)) {
|
132
|
-
revert ErrorComponentWalletAddressZero();
|
129
|
+
// if product, then parent is already instance
|
130
|
+
if (componentType == PRODUCT()) {
|
131
|
+
_checkAndGetRegistry(registryAddress, parentNftId, INSTANCE());
|
132
|
+
return parentNftId;
|
133
133
|
}
|
134
134
|
|
135
|
-
if
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
if (currentBalance > 0) {
|
140
|
-
if (currentWallet == address(this)) {
|
141
|
-
// move tokens from component smart contract to external wallet
|
142
|
-
} else {
|
143
|
-
// move tokens from external wallet to component smart contract or another external wallet
|
144
|
-
uint256 allowance = $._token.allowance(currentWallet, address(this));
|
145
|
-
if (allowance < currentBalance) {
|
146
|
-
revert ErrorComponentWalletAllowanceTooSmall(currentWallet, newWallet, allowance, currentBalance);
|
147
|
-
}
|
148
|
-
}
|
149
|
-
}
|
150
|
-
|
151
|
-
// effects
|
152
|
-
$._wallet = newWallet;
|
153
|
-
emit LogComponentWalletAddressChanged(currentWallet, newWallet);
|
154
|
-
|
155
|
-
// interactions
|
156
|
-
if (currentBalance > 0) {
|
157
|
-
// transfer tokens from current wallet to new wallet
|
158
|
-
if (currentWallet == address(this)) {
|
159
|
-
// transferFrom requires self allowance too
|
160
|
-
$._token.approve(address(this), currentBalance);
|
161
|
-
}
|
162
|
-
|
163
|
-
SafeERC20.safeTransferFrom($._token, currentWallet, newWallet, currentBalance);
|
164
|
-
emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
|
165
|
-
}
|
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);
|
166
138
|
}
|
167
139
|
|
168
|
-
|
169
|
-
|
170
|
-
|
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)
|
171
150
|
{
|
172
|
-
|
151
|
+
registry = IRegistry(registryAddress);
|
152
|
+
IRegistry.ObjectInfo memory info = registry.getObjectInfo(objectNftId);
|
173
153
|
|
174
|
-
|
175
|
-
|
176
|
-
revert ErrorComponentNotProductService(msg.sender);
|
154
|
+
if (info.objectType != requiredType) {
|
155
|
+
revert ErrorInstanceLinkedComponentTypeMismatch(requiredType, info.objectType);
|
177
156
|
}
|
178
|
-
|
179
|
-
// verify component is not yet linked to a product
|
180
|
-
if($._productNftId.gtz()) {
|
181
|
-
revert ErrorComponentProductNftAlreadySet();
|
182
|
-
}
|
183
|
-
|
184
|
-
$._productNftId = productNftId;
|
185
157
|
}
|
186
158
|
|
187
|
-
function nftMint(address to, uint256 tokenId)
|
188
|
-
external
|
189
|
-
virtual
|
190
|
-
onlyChainNft
|
191
|
-
{}
|
192
|
-
|
193
|
-
/// @dev callback function for nft transfers
|
194
|
-
/// may only be called by chain nft contract.
|
195
|
-
/// do not override this function to implement business logic for handling transfers
|
196
|
-
/// override internal function _nftTransferFrom instead
|
197
|
-
function nftTransferFrom(address from, address to, uint256 tokenId)
|
198
|
-
external
|
199
|
-
virtual
|
200
|
-
onlyChainNft
|
201
|
-
{
|
202
|
-
_nftTransferFrom(from, to, tokenId);
|
203
|
-
}
|
204
159
|
|
205
|
-
|
206
|
-
|
207
|
-
|
160
|
+
/// @dev for instance linked components the wallet address stored in the instance store.
|
161
|
+
/// updating needs to go throug component service
|
162
|
+
function _setWallet(address newWallet) internal virtual override onlyOwner {
|
163
|
+
IComponentService(_getServiceAddress(COMPONENT())).setWallet(newWallet);
|
208
164
|
}
|
209
165
|
|
210
|
-
function getToken() public view override returns (IERC20Metadata token) {
|
211
|
-
return _getComponentStorage()._token;
|
212
|
-
}
|
213
166
|
|
214
|
-
function
|
215
|
-
|
216
|
-
}
|
167
|
+
function _getComponentInfo() internal virtual override view returns (IComponents.ComponentInfo memory info) {
|
168
|
+
NftId componentNftId = getRegistry().getNftIdForAddress(address(this));
|
217
169
|
|
218
|
-
|
219
|
-
|
220
|
-
|
170
|
+
// if registered, attempt to return component info via instance reader
|
171
|
+
if (componentNftId.gtz()) {
|
172
|
+
// component registerd with registry
|
173
|
+
info = _getInstanceReader().getComponentInfo(getNftId());
|
221
174
|
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
function getName() public view override returns(string memory name) {
|
227
|
-
return _getComponentStorage()._name;
|
228
|
-
}
|
229
|
-
|
230
|
-
function getProductNftId() public view override returns (NftId productNftId) {
|
231
|
-
return _getComponentStorage()._productNftId;
|
232
|
-
}
|
233
|
-
|
234
|
-
function getComponentInfo() public view returns (IComponents.ComponentInfo memory info) {
|
235
|
-
info = _getInstanceReader().getComponentInfo(getNftId());
|
236
|
-
|
237
|
-
// fallback to initial info (wallet is always != address(0))
|
238
|
-
if(info.wallet == address(0)) {
|
239
|
-
info = _getInitialInfo();
|
175
|
+
// check if also registered with instance
|
176
|
+
if (address(info.tokenHandler) != address(0)) {
|
177
|
+
return info;
|
178
|
+
}
|
240
179
|
}
|
241
|
-
}
|
242
|
-
|
243
|
-
/// @dev defines initial component specification
|
244
|
-
/// overwrite this function according to your use case
|
245
|
-
function _getInitialInfo()
|
246
|
-
internal
|
247
|
-
view
|
248
|
-
virtual
|
249
|
-
returns (IComponents.ComponentInfo memory info)
|
250
|
-
{ }
|
251
180
|
|
181
|
+
// return data from component contract if not yet registered
|
182
|
+
return super._getComponentInfo();
|
183
|
+
}
|
252
184
|
|
253
|
-
/// @dev internal function for nft transfers.
|
254
|
-
/// handling logic that deals with nft transfers need to overwrite this function
|
255
|
-
function _nftTransferFrom(address from, address to, uint256 tokenId)
|
256
|
-
internal
|
257
|
-
virtual
|
258
|
-
{ }
|
259
185
|
|
260
186
|
/// @dev returns reader for linked instance
|
261
187
|
function _getInstanceReader() internal view returns (InstanceReader reader) {
|
262
|
-
return
|
188
|
+
return _getInstanceLinkedComponentStorage()._instanceReader;
|
263
189
|
}
|
264
190
|
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
return
|
191
|
+
function _withdrawFees(Amount amount)
|
192
|
+
internal
|
193
|
+
returns (Amount withdrawnAmount)
|
194
|
+
{
|
195
|
+
return _getInstanceLinkedComponentStorage()._componentService.withdrawFees(amount);
|
270
196
|
}
|
271
197
|
}
|
@@ -1,24 +1,24 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Blocknumber, blockBlocknumber, zeroBlocknumber} from "
|
5
|
-
import {Key32, KeyId, Key32Lib} from "
|
6
|
-
import {NftId} from "
|
7
|
-
import {ObjectType} from "
|
8
|
-
import {StateId, ACTIVE, KEEP_STATE} from "
|
9
|
-
import {Timestamp, TimestampLib} from "
|
4
|
+
import {Blocknumber, blockBlocknumber, zeroBlocknumber} from "../type/Blocknumber.sol";
|
5
|
+
import {Key32, KeyId, Key32Lib} from "../type/Key32.sol";
|
6
|
+
import {NftId} from "../type/NftId.sol";
|
7
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
8
|
+
import {StateId, ACTIVE, KEEP_STATE} from "../type/StateId.sol";
|
9
|
+
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
10
10
|
|
11
11
|
import {Lifecycle} from "./Lifecycle.sol";
|
12
12
|
import {IKeyValueStore} from "./IKeyValueStore.sol";
|
13
13
|
|
14
|
-
contract KeyValueStore is
|
14
|
+
abstract contract KeyValueStore is
|
15
15
|
Lifecycle,
|
16
16
|
IKeyValueStore
|
17
17
|
{
|
18
18
|
|
19
19
|
mapping(Key32 key32 => Value value) private _value;
|
20
20
|
|
21
|
-
function
|
21
|
+
function _create(
|
22
22
|
Key32 key32,
|
23
23
|
bytes memory data
|
24
24
|
)
|
@@ -34,14 +34,16 @@ contract KeyValueStore is
|
|
34
34
|
revert ErrorKeyValueStoreAlreadyCreated(key32, objectType);
|
35
35
|
}
|
36
36
|
|
37
|
-
|
37
|
+
if(!hasLifecycle(objectType)) {
|
38
|
+
revert ErrorKeyValueStoreNoLifecycle(objectType);
|
39
|
+
}
|
40
|
+
|
38
41
|
Blocknumber blocknumber = blockBlocknumber();
|
39
|
-
StateId initialState =
|
42
|
+
StateId initialState = getInitialState(objectType);
|
40
43
|
|
41
44
|
// set metadata
|
42
45
|
metadata.objectType = objectType;
|
43
46
|
metadata.state = initialState;
|
44
|
-
metadata.updatedBy = createdBy;
|
45
47
|
metadata.updatedIn = blocknumber;
|
46
48
|
metadata.createdIn = blocknumber;
|
47
49
|
|
@@ -49,74 +51,34 @@ contract KeyValueStore is
|
|
49
51
|
_value[key32].data = data;
|
50
52
|
|
51
53
|
// solhint-disable-next-line avoid-tx-origin
|
52
|
-
emit LogInfoCreated(key32.toObjectType(), key32.toKeyId(), initialState,
|
54
|
+
emit LogInfoCreated(key32.toObjectType(), key32.toKeyId(), initialState, msg.sender, tx.origin);
|
53
55
|
}
|
54
56
|
|
55
|
-
|
57
|
+
|
58
|
+
function _update(
|
56
59
|
Key32 key32,
|
57
60
|
bytes memory data,
|
58
61
|
StateId state
|
59
62
|
)
|
60
63
|
internal
|
61
64
|
{
|
62
|
-
|
63
|
-
|
64
|
-
}
|
65
|
-
|
66
|
-
Metadata storage metadata = _value[key32].metadata;
|
67
|
-
StateId stateOld = metadata.state;
|
68
|
-
if (stateOld.eqz()) {
|
69
|
-
revert ErrorKeyValueStoreNotExisting(key32);
|
70
|
-
}
|
71
|
-
|
72
|
-
// update data
|
73
|
-
_value[key32].data = data;
|
74
|
-
|
75
|
-
// update state
|
76
|
-
if(state != KEEP_STATE()) {
|
77
|
-
checkTransition(metadata.objectType, stateOld, state);
|
78
|
-
metadata.state = state;
|
79
|
-
}
|
80
|
-
|
81
|
-
// update reest of metadata
|
82
|
-
address updatedBy = msg.sender;
|
83
|
-
Blocknumber lastUpdatedIn = metadata.updatedIn;
|
84
|
-
|
85
|
-
metadata.updatedBy = updatedBy;
|
86
|
-
metadata.updatedIn = blockBlocknumber();
|
87
|
-
|
88
|
-
// create log entries
|
89
|
-
// solhint-disable avoid-tx-origin
|
90
|
-
emit LogStateUpdated(key32.toObjectType(), key32.toKeyId(), stateOld, state, updatedBy, tx.origin, lastUpdatedIn);
|
91
|
-
emit LogInfoUpdated(key32.toObjectType(), key32.toKeyId(), state, updatedBy, tx.origin, lastUpdatedIn);
|
92
|
-
// solhing-enable
|
93
|
-
}
|
94
|
-
|
95
|
-
function updateData(Key32 key32, bytes memory data)
|
96
|
-
internal
|
97
|
-
{
|
98
|
-
Metadata storage metadata = _value[key32].metadata;
|
99
|
-
StateId state = metadata.state;
|
100
|
-
if (state.eqz()) {
|
101
|
-
revert ErrorKeyValueStoreNotExisting(key32);
|
102
|
-
}
|
65
|
+
// update state
|
66
|
+
Blocknumber lastUpdatedIn = _updateState(key32, state);
|
103
67
|
|
104
68
|
// update data
|
105
69
|
_value[key32].data = data;
|
106
70
|
|
107
|
-
// update metadata
|
108
|
-
address updatedBy = msg.sender;
|
109
|
-
Blocknumber lastUpdatedIn = metadata.updatedIn;
|
110
|
-
metadata.updatedBy = updatedBy;
|
111
|
-
metadata.updatedIn = blockBlocknumber();
|
112
|
-
|
113
|
-
// create log entry
|
114
71
|
// solhint-disable-next-line avoid-tx-origin
|
115
|
-
emit LogInfoUpdated(key32.toObjectType(), key32.toKeyId(), state,
|
72
|
+
emit LogInfoUpdated(key32.toObjectType(), key32.toKeyId(), state, msg.sender, tx.origin, lastUpdatedIn);
|
116
73
|
}
|
117
74
|
|
118
|
-
|
75
|
+
|
76
|
+
function _updateState(
|
77
|
+
Key32 key32,
|
78
|
+
StateId state
|
79
|
+
)
|
119
80
|
internal
|
81
|
+
returns (Blocknumber lastUpdatedIn)
|
120
82
|
{
|
121
83
|
if (state.eqz()) {
|
122
84
|
revert ErrorKeyValueStoreStateZero(key32);
|
@@ -124,23 +86,23 @@ contract KeyValueStore is
|
|
124
86
|
|
125
87
|
Metadata storage metadata = _value[key32].metadata;
|
126
88
|
StateId stateOld = metadata.state;
|
89
|
+
lastUpdatedIn = metadata.updatedIn;
|
90
|
+
|
127
91
|
if (stateOld.eqz()) {
|
128
92
|
revert ErrorKeyValueStoreNotExisting(key32);
|
129
93
|
}
|
130
94
|
|
131
|
-
//
|
132
|
-
|
95
|
+
// update state
|
96
|
+
if(state != KEEP_STATE()) {
|
97
|
+
checkTransition(stateOld, metadata.objectType, stateOld, state);
|
98
|
+
metadata.state = state;
|
99
|
+
|
100
|
+
// solhint-disable-next-line avoid-tx-origin
|
101
|
+
emit LogStateUpdated(key32.toObjectType(), key32.toKeyId(), stateOld, state, msg.sender, tx.origin, lastUpdatedIn);
|
102
|
+
}
|
133
103
|
|
134
|
-
// update metadata
|
135
|
-
address updatedBy = msg.sender;
|
136
|
-
Blocknumber lastUpdatedIn = metadata.updatedIn;
|
137
|
-
metadata.state = state;
|
138
|
-
metadata.updatedBy = updatedBy;
|
104
|
+
// update metadata
|
139
105
|
metadata.updatedIn = blockBlocknumber();
|
140
|
-
|
141
|
-
// create log entry
|
142
|
-
// solhint-disable-next-line avoid-tx-origin
|
143
|
-
emit LogStateUpdated(key32.toObjectType(), key32.toKeyId(), stateOld, state, updatedBy, tx.origin, lastUpdatedIn);
|
144
106
|
}
|
145
107
|
|
146
108
|
function exists(Key32 key32) public view returns (bool) {
|
@@ -0,0 +1,88 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
5
|
+
import {StateId, zeroStateId} from "../type/StateId.sol";
|
6
|
+
import {ILifecycle} from "./ILifecycle.sol";
|
7
|
+
|
8
|
+
abstract contract Lifecycle is
|
9
|
+
ILifecycle
|
10
|
+
{
|
11
|
+
mapping(ObjectType objectType => StateId initialState)
|
12
|
+
private _initialState;
|
13
|
+
|
14
|
+
mapping(ObjectType objectType => mapping(StateId stateFrom => mapping(StateId stateTo => bool isValid)))
|
15
|
+
private _isValidTransition;
|
16
|
+
|
17
|
+
/// @dev child class must implement and CALL setup func at deployment/initializaton time
|
18
|
+
function _setupLifecycle() internal virtual;
|
19
|
+
|
20
|
+
function setInitialState(ObjectType ttype, StateId state) internal virtual {
|
21
|
+
assert(_initialState[ttype] == zeroStateId());
|
22
|
+
_initialState[ttype] = state;
|
23
|
+
}
|
24
|
+
|
25
|
+
function setStateTransition(ObjectType ttype, StateId oldState, StateId newState) internal virtual {
|
26
|
+
assert(_isValidTransition[ttype][oldState][newState] == false);
|
27
|
+
_isValidTransition[ttype][oldState][newState] = true;
|
28
|
+
}
|
29
|
+
|
30
|
+
function hasLifecycle(
|
31
|
+
ObjectType objectType
|
32
|
+
)
|
33
|
+
public
|
34
|
+
view
|
35
|
+
override
|
36
|
+
returns (bool)
|
37
|
+
{
|
38
|
+
return _initialState[objectType].gtz();
|
39
|
+
}
|
40
|
+
|
41
|
+
function getInitialState(
|
42
|
+
ObjectType objectType
|
43
|
+
)
|
44
|
+
public
|
45
|
+
view
|
46
|
+
returns (StateId)
|
47
|
+
{
|
48
|
+
return _initialState[objectType];
|
49
|
+
}
|
50
|
+
|
51
|
+
function checkTransition(
|
52
|
+
StateId stateId,
|
53
|
+
ObjectType objectType,
|
54
|
+
StateId expectedFromId,
|
55
|
+
StateId toId
|
56
|
+
)
|
57
|
+
public
|
58
|
+
view
|
59
|
+
{
|
60
|
+
// revert if no life cycle support
|
61
|
+
if (_initialState[objectType].eqz()) {
|
62
|
+
revert ErrorNoLifecycle(address(this), objectType);
|
63
|
+
}
|
64
|
+
|
65
|
+
// revert if current state is not expected `from` state
|
66
|
+
if(stateId != expectedFromId) {
|
67
|
+
revert ErrorFromStateMissmatch(address(this), objectType, stateId, expectedFromId);
|
68
|
+
}
|
69
|
+
|
70
|
+
// enforce valid state transition
|
71
|
+
if (!_isValidTransition[objectType][stateId][toId]) {
|
72
|
+
revert ErrorInvalidStateTransition(
|
73
|
+
address(this),
|
74
|
+
objectType,
|
75
|
+
stateId,
|
76
|
+
toId
|
77
|
+
);
|
78
|
+
}
|
79
|
+
}
|
80
|
+
|
81
|
+
function isValidTransition(
|
82
|
+
ObjectType objectType,
|
83
|
+
StateId fromId,
|
84
|
+
StateId toId
|
85
|
+
) public view returns (bool) {
|
86
|
+
return _isValidTransition[objectType][fromId][toId];
|
87
|
+
}
|
88
|
+
}
|