@etherisc/gif-next 0.0.2-ffba655 → 3.0.0-05a0348-829
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 +285 -68
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1061 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +806 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +837 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1735 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2053 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1416 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +817 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/access → authorization}/IAccess.sol/IAccess.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1412 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +465 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +407 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +652 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1140 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +844 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +845 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1882 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +950 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +744 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1357 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1399 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1963 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -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/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1278 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1391 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2214 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1335 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1086 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1562 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2500 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +382 -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/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +354 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +734 -451
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +1175 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +810 -530
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2400 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +872 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2687 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1437 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +792 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3089 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3477 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
- package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
- package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +872 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +849 -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 +687 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +768 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +788 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1048 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +830 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1157 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +844 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1450 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +886 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1045 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +820 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1461 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +940 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +517 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1845 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +886 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +810 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1074 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +844 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1542 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +906 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +804 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1110 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1048 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +931 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +665 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1416 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +791 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +874 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +834 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1032 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +295 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1061 -113
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1072 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/{instance/component/IComponent.sol/IInstanceLinked.json → registry/IRelease.sol/IRelease.json} +6 -6
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +1553 -176
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2255 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1112 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1298 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +793 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -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 +1411 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +705 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +721 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +620 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1767 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +882 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/{registry/IRegistry.sol/IOwnable.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/ContractLib.sol/ITargetHelper.json} +4 -9
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +558 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +545 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1391 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +622 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +146 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
- package/artifacts/contracts/{registry/IRegistry.sol/IRegisterable.json → shared/INftOwnable.sol/INftOwnable.json} +72 -72
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
- package/artifacts/contracts/{instance/component/ComponentModule.sol/ComponentModule.json → shared/IRegisterable.sol/IRegisterable.json} +179 -158
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegistryLinked.sol}/IRegistryLinked.json +5 -19
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/shared/IService.sol/IService.json +428 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +710 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +228 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +397 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
- package/artifacts/contracts/shared/Service.sol/Service.json +482 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +696 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +457 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2697 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +947 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +3125 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +465 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +867 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1144 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +786 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +304 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +674 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +393 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +270 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +368 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +238 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +161 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +308 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +199 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +344 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +567 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +672 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +46 -0
- package/contracts/authorization/AccessAdmin.sol +662 -0
- package/contracts/authorization/AccessAdminLib.sol +695 -0
- package/contracts/authorization/AccessManagerCloneable.sol +144 -0
- package/contracts/authorization/Authorization.sol +190 -0
- package/contracts/authorization/IAccess.sol +66 -0
- package/contracts/authorization/IAccessAdmin.sol +143 -0
- package/contracts/authorization/IAuthorization.sol +26 -0
- package/contracts/authorization/IServiceAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +300 -0
- package/contracts/distribution/BasicDistribution.sol +140 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
- package/contracts/distribution/Distribution.sol +245 -0
- package/contracts/distribution/DistributionService.sol +453 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +43 -0
- package/contracts/distribution/IDistributionService.sol +116 -0
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/flight/FlightLib.sol +337 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +226 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +687 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
- package/contracts/examples/flight/FlightProductManager.sol +49 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BaseStore.sol +97 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IBaseStore.sol +45 -0
- package/contracts/instance/IInstance.sol +151 -15
- package/contracts/instance/IInstanceService.sol +121 -0
- package/contracts/instance/Instance.sol +332 -45
- package/contracts/instance/InstanceAdmin.sol +306 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
- package/contracts/instance/InstanceReader.sol +642 -0
- package/contracts/instance/InstanceService.sol +522 -0
- package/contracts/instance/InstanceServiceManager.sol +39 -0
- package/contracts/instance/InstanceStore.sol +323 -0
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +121 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- package/contracts/instance/base/ObjectLifecycle.sol +109 -0
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +21 -0
- package/contracts/instance/module/IComponents.sol +60 -0
- package/contracts/instance/module/IDistribution.sol +54 -0
- package/contracts/instance/module/IPolicy.sol +105 -0
- package/contracts/instance/module/IRisk.sol +16 -0
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
- package/contracts/oracle/IOracle.sol +41 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +152 -0
- package/contracts/oracle/OracleService.sol +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +161 -0
- package/contracts/pool/BasicPoolAuthorization.sol +81 -0
- package/contracts/pool/BundleService.sol +386 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +116 -0
- package/contracts/pool/IPoolComponent.sol +62 -0
- package/contracts/pool/IPoolService.sol +170 -0
- package/contracts/pool/Pool.sol +331 -0
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +614 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +327 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/BasicProduct.sol +48 -0
- package/contracts/product/BasicProductAuthorization.sol +64 -0
- package/contracts/product/ClaimService.sol +626 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +88 -0
- package/contracts/product/IClaimService.sol +136 -0
- package/contracts/product/IPolicyService.sol +102 -0
- package/contracts/product/IPricingService.sol +40 -0
- package/contracts/product/IProductComponent.sol +62 -0
- package/contracts/product/IRiskService.sol +48 -0
- package/contracts/product/PolicyService.sol +645 -0
- package/contracts/product/PolicyServiceLib.sol +141 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +306 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +491 -0
- package/contracts/product/RiskService.sol +189 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +176 -100
- package/contracts/registry/IRegistry.sol +149 -47
- package/contracts/registry/IRegistryService.sol +62 -0
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +6 -0
- package/contracts/registry/Registry.sol +673 -117
- package/contracts/registry/RegistryAdmin.sol +179 -0
- package/contracts/registry/RegistryAuthorization.sol +335 -0
- package/contracts/registry/RegistryService.sol +241 -0
- package/contracts/registry/RegistryServiceManager.sol +53 -0
- package/contracts/registry/ReleaseAdmin.sol +206 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +525 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
- package/contracts/registry/TokenRegistry.sol +317 -0
- package/contracts/shared/Component.sol +210 -0
- package/contracts/shared/ComponentService.sol +725 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ContractLib.sol +312 -0
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +54 -0
- package/contracts/shared/IComponentService.sol +133 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +27 -0
- package/contracts/shared/ILifecycle.sol +31 -0
- package/contracts/shared/INftOwnable.sol +27 -0
- package/contracts/shared/IPolicyHolder.sol +35 -0
- package/contracts/shared/IRegisterable.sol +36 -0
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +23 -0
- package/contracts/shared/InitializableERC165.sol +35 -0
- package/contracts/shared/InstanceLinkedComponent.sol +233 -0
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +129 -0
- package/contracts/shared/PolicyHolder.sol +63 -0
- package/contracts/shared/Registerable.sol +106 -0
- package/contracts/shared/RegistryLinked.sol +38 -0
- package/contracts/shared/Service.sol +67 -0
- package/contracts/shared/TokenHandler.sol +342 -0
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +368 -0
- package/contracts/staking/IStakingService.sol +118 -0
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +798 -0
- package/contracts/staking/StakingLib.sol +195 -0
- package/contracts/staking/StakingManager.sol +53 -0
- package/contracts/staking/StakingReader.sol +171 -0
- package/contracts/staking/StakingService.sol +321 -0
- package/contracts/staking/StakingServiceManager.sol +46 -0
- package/contracts/staking/StakingStore.sol +1368 -0
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +234 -0
- package/contracts/type/AddressSet.sol +58 -0
- package/contracts/type/Amount.sol +154 -0
- package/contracts/type/Blocknumber.sol +137 -0
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/ClaimId.sol +80 -0
- package/contracts/type/DistributorType.sol +55 -0
- package/contracts/type/Fee.sol +66 -0
- package/contracts/type/Key32.sol +50 -0
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +85 -0
- package/contracts/type/NftIdSet.sol +62 -0
- package/contracts/type/ObjectType.sol +278 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/type/Referral.sol +96 -0
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/RiskId.sol +75 -0
- package/contracts/type/RoleId.sol +180 -0
- package/contracts/type/Seconds.sol +124 -0
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +149 -0
- package/contracts/type/String.sol +95 -0
- package/contracts/type/Timestamp.sol +152 -0
- package/contracts/type/UFixed.sol +263 -0
- package/contracts/type/Version.sol +159 -0
- package/contracts/upgradeability/IVersionable.sol +56 -0
- package/contracts/upgradeability/ProxyManager.sol +246 -0
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
- package/contracts/upgradeability/Versionable.sol +62 -0
- package/package.json +27 -7
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Component.sol/Component.json +0 -179
- package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
- package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
- package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -213
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -231
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
- package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -147
- package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
- package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
- package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
- package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -162
- package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
- package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
- package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
- package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
- package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
- package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -167
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
- package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
- package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
- package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
- package/contracts/components/Component.sol +0 -62
- package/contracts/components/IPool.sol +0 -9
- package/contracts/components/IProduct.sol +0 -12
- package/contracts/components/Pool.sol +0 -29
- package/contracts/components/Product.sol +0 -66
- package/contracts/experiment/errors/Require.sol +0 -33
- package/contracts/experiment/errors/Revert.sol +0 -39
- package/contracts/experiment/inheritance/A.sol +0 -56
- package/contracts/experiment/inheritance/B.sol +0 -23
- package/contracts/experiment/inheritance/C.sol +0 -28
- package/contracts/experiment/inheritance/IA.sol +0 -18
- package/contracts/experiment/inheritance/IB.sol +0 -9
- package/contracts/experiment/inheritance/IC.sol +0 -11
- package/contracts/experiment/types/TypeA.sol +0 -42
- package/contracts/experiment/types/TypeB.sol +0 -24
- package/contracts/instance/access/Access.sol +0 -218
- package/contracts/instance/access/IAccess.sol +0 -83
- package/contracts/instance/component/ComponentModule.sol +0 -248
- package/contracts/instance/component/IComponent.sol +0 -95
- package/contracts/instance/policy/IPolicy.sol +0 -66
- package/contracts/instance/policy/PolicyModule.sol +0 -107
- package/contracts/instance/pool/IPoolModule.sol +0 -41
- package/contracts/instance/pool/PoolModule.sol +0 -86
- package/contracts/instance/product/IProductService.sol +0 -46
- package/contracts/instance/product/ProductService.sol +0 -108
- package/contracts/registry/IChainNft.sol +0 -18
- package/contracts/types/Blocknumber.sol +0 -60
- package/contracts/types/ChainId.sol +0 -30
- package/contracts/types/NftId.sol +0 -35
- package/contracts/types/Timestamp.sol +0 -55
- package/contracts/types/UFixed.sol +0 -211
@@ -0,0 +1,323 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
+
|
6
|
+
import {IBundle} from "./module/IBundle.sol";
|
7
|
+
import {IComponents} from "./module/IComponents.sol";
|
8
|
+
import {IDistribution} from "./module/IDistribution.sol";
|
9
|
+
import {IInstance} from "./IInstance.sol";
|
10
|
+
import {IOracle} from "../oracle/IOracle.sol";
|
11
|
+
|
12
|
+
import {Amount} from "../type/Amount.sol";
|
13
|
+
import {BaseStore} from "./BaseStore.sol";
|
14
|
+
import {Blocknumber} from "../type/Blocknumber.sol";
|
15
|
+
import {Key32} from "../type/Key32.sol";
|
16
|
+
import {NftId} from "../type/NftId.sol";
|
17
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
18
|
+
import {ObjectType, BUNDLE, POOL, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
|
19
|
+
import {RequestId} from "../type/RequestId.sol";
|
20
|
+
import {StateId} from "../type/StateId.sol";
|
21
|
+
import {ReferralId} from "../type/Referral.sol";
|
22
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
23
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
24
|
+
import {BalanceStore} from "./base/BalanceStore.sol";
|
25
|
+
import {ObjectCounter} from "./base/ObjectCounter.sol";
|
26
|
+
import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
|
27
|
+
|
28
|
+
|
29
|
+
contract InstanceStore is
|
30
|
+
AccessManagedUpgradeable,
|
31
|
+
BalanceStore,
|
32
|
+
ObjectCounter,
|
33
|
+
ObjectLifecycle,
|
34
|
+
BaseStore
|
35
|
+
{
|
36
|
+
|
37
|
+
event LogProductStoreComponentInfoCreated(NftId indexed componentNftId, StateId indexed state, address indexed createdby, address txOrigin);
|
38
|
+
event LogProductStoreComponentInfoUpdated(NftId indexed componentNftId, StateId indexed oldState, StateId indexed newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
39
|
+
event LogProductStorePoolInfoCreated(NftId indexed poolNftId, StateId indexed state, address indexed createdBy, address txOrigin);
|
40
|
+
event LogProductStorePoolInfoUpdated(NftId indexed poolNftId, StateId indexed oldState, StateId indexed newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
41
|
+
event LogProductStoreDistributorTypeInfoCreated(DistributorType indexed distributorType, StateId indexed state, address indexed createdBy, address txOrigin);
|
42
|
+
event LogProductStoreDistributorTypeInfoUpdated(DistributorType indexed distributorType, StateId indexed oldState, StateId indexed newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
43
|
+
event LogProductStoreDistributorInfoCreated(NftId indexed distributorNftId, StateId indexed state, address indexed createdBy, address txOrigin);
|
44
|
+
event LogProductStoreDistributorInfoUpdated(NftId indexed distributorNftId, StateId indexed oldState, StateId indexed newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
45
|
+
event LogProductStoreReferralInfoCreated(ReferralId indexed referralId, StateId indexed state, address indexed createdBy, address txOrigin);
|
46
|
+
event LogProductStoreReferralInfoUpdated(ReferralId indexed referralId, StateId indexed oldState, StateId indexed newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
47
|
+
event LogProductStoreBundleInfoCreated(NftId indexed bundleNftId, StateId indexed state, address indexed createdBy, address txOrigin);
|
48
|
+
event LogProductStoreBundleInfoUpdated(NftId indexed bundleNftId, StateId indexed oldState, StateId indexed newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
49
|
+
event LogProductStoreRequestInfoCreated(RequestId indexed requestId, StateId indexed state, address indexed createdBy, address txOrigin);
|
50
|
+
event LogProductStoreRequestInfoUpdated(RequestId indexed requestId, StateId indexed oldState, StateId indexed newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
51
|
+
|
52
|
+
|
53
|
+
mapping(Key32 => IComponents.ComponentInfo) private _components;
|
54
|
+
mapping(Key32 => IComponents.PoolInfo) private _pools;
|
55
|
+
mapping(Key32 => IDistribution.DistributorTypeInfo) private _distributorTypes;
|
56
|
+
mapping(Key32 => IDistribution.DistributorInfo) private _distributors;
|
57
|
+
mapping(Key32 => IDistribution.ReferralInfo) private _referrals;
|
58
|
+
mapping(Key32 => IBundle.BundleInfo) private _bundles;
|
59
|
+
mapping(Key32 => IOracle.RequestInfo) private _requests;
|
60
|
+
|
61
|
+
|
62
|
+
/// @dev This initializer needs to be called from the instance itself.
|
63
|
+
function initialize()
|
64
|
+
public
|
65
|
+
initializer()
|
66
|
+
{
|
67
|
+
address instance = msg.sender;
|
68
|
+
address authority = IInstance(instance).authority();
|
69
|
+
|
70
|
+
__AccessManaged_init(authority);
|
71
|
+
// double initialization, safe
|
72
|
+
_initializeLifecycle();
|
73
|
+
}
|
74
|
+
|
75
|
+
//--- Component ---------------------------------------------------------//
|
76
|
+
|
77
|
+
function createComponent(
|
78
|
+
NftId componentNftId,
|
79
|
+
IComponents.ComponentInfo memory componentInfo
|
80
|
+
)
|
81
|
+
external
|
82
|
+
restricted()
|
83
|
+
{
|
84
|
+
_registerBalanceTarget(componentNftId);
|
85
|
+
// _create(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo));
|
86
|
+
Key32 key = _toNftKey32(componentNftId, COMPONENT());
|
87
|
+
_createMetadata(key);
|
88
|
+
_components[key] = componentInfo;
|
89
|
+
// solhint-disable-next-line avoid-tx-origin
|
90
|
+
emit LogProductStoreComponentInfoCreated(componentNftId, getState(key), msg.sender, tx.origin);
|
91
|
+
}
|
92
|
+
|
93
|
+
function updateComponent(
|
94
|
+
NftId componentNftId,
|
95
|
+
IComponents.ComponentInfo memory componentInfo,
|
96
|
+
StateId newState
|
97
|
+
)
|
98
|
+
external
|
99
|
+
restricted()
|
100
|
+
{
|
101
|
+
// _update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
|
102
|
+
Key32 key = _toNftKey32(componentNftId, COMPONENT());
|
103
|
+
(Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
|
104
|
+
_components[key] = componentInfo;
|
105
|
+
// solhint-disable-next-line avoid-tx-origin
|
106
|
+
emit LogProductStoreComponentInfoUpdated(componentNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
|
107
|
+
}
|
108
|
+
|
109
|
+
function getComponentInfo(NftId componentNftId) external view returns (IComponents.ComponentInfo memory componentInfo) {
|
110
|
+
return _components[_toNftKey32(componentNftId, COMPONENT())];
|
111
|
+
}
|
112
|
+
|
113
|
+
//--- Pool --------------------------------------------------------------//
|
114
|
+
|
115
|
+
function createPool(
|
116
|
+
NftId poolNftId,
|
117
|
+
IComponents.PoolInfo memory info
|
118
|
+
)
|
119
|
+
external
|
120
|
+
restricted()
|
121
|
+
{
|
122
|
+
Key32 key = _toNftKey32(poolNftId, POOL());
|
123
|
+
_createMetadata(key);
|
124
|
+
_pools[key] = info;
|
125
|
+
// solhint-disable-next-line avoid-tx-origin
|
126
|
+
emit LogProductStorePoolInfoCreated(poolNftId, getState(key), msg.sender, tx.origin);
|
127
|
+
}
|
128
|
+
|
129
|
+
function updatePool(NftId poolNftId, IComponents.PoolInfo memory info, StateId newState) external restricted() {
|
130
|
+
Key32 key = _toNftKey32(poolNftId, POOL());
|
131
|
+
(Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
|
132
|
+
_pools[key] = info;
|
133
|
+
// solhint-disable-next-line avoid-tx-origin
|
134
|
+
emit LogProductStorePoolInfoUpdated(poolNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
|
135
|
+
}
|
136
|
+
|
137
|
+
function getPoolInfo(NftId poolNftId) external view returns (IComponents.PoolInfo memory info) {
|
138
|
+
return _pools[_toNftKey32(poolNftId, POOL())];
|
139
|
+
}
|
140
|
+
|
141
|
+
//--- DistributorType ---------------------------------------------------//
|
142
|
+
function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
|
143
|
+
Key32 key = distributorType.toKey32();
|
144
|
+
_createMetadata(key);
|
145
|
+
_distributorTypes[key] = info;
|
146
|
+
// solhint-disable-next-line avoid-tx-origin
|
147
|
+
emit LogProductStoreDistributorTypeInfoCreated(distributorType, getState(key), msg.sender, tx.origin);
|
148
|
+
}
|
149
|
+
|
150
|
+
function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
|
151
|
+
Key32 key = distributorType.toKey32();
|
152
|
+
(Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
|
153
|
+
_distributorTypes[key] = info;
|
154
|
+
// solhint-disable-next-line avoid-tx-origin
|
155
|
+
emit LogProductStoreDistributorTypeInfoUpdated(distributorType, oldState, newState, msg.sender, tx.origin, updatedIn);
|
156
|
+
}
|
157
|
+
|
158
|
+
function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
|
159
|
+
Key32 key = distributorType.toKey32();
|
160
|
+
(Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
|
161
|
+
// solhint-disable-next-line avoid-tx-origin
|
162
|
+
emit LogProductStoreDistributorTypeInfoUpdated(distributorType, oldState, newState, msg.sender, tx.origin, updatedIn);
|
163
|
+
}
|
164
|
+
|
165
|
+
function getDistributorTypeInfo(DistributorType distributorType) external view returns (IDistribution.DistributorTypeInfo memory info) {
|
166
|
+
return _distributorTypes[distributorType.toKey32()];
|
167
|
+
}
|
168
|
+
|
169
|
+
//--- Distributor -------------------------------------------------------//
|
170
|
+
function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
|
171
|
+
_registerBalanceTarget(distributorNftId);
|
172
|
+
Key32 key = _toNftKey32(distributorNftId, DISTRIBUTOR());
|
173
|
+
_createMetadata(key);
|
174
|
+
_distributors[key] = info;
|
175
|
+
// solhint-disable-next-line avoid-tx-origin
|
176
|
+
emit LogProductStoreDistributorInfoCreated(distributorNftId, getState(key), msg.sender, tx.origin);
|
177
|
+
}
|
178
|
+
|
179
|
+
function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
|
180
|
+
Key32 key = _toNftKey32(distributorNftId, DISTRIBUTOR());
|
181
|
+
(Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
|
182
|
+
_distributors[key] = info;
|
183
|
+
// solhint-disable-next-line avoid-tx-origin
|
184
|
+
emit LogProductStoreDistributorInfoUpdated(distributorNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
|
185
|
+
}
|
186
|
+
|
187
|
+
function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
|
188
|
+
Key32 key = _toNftKey32(distributorNftId, DISTRIBUTOR());
|
189
|
+
(Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
|
190
|
+
// solhint-disable-next-line avoid-tx-origin
|
191
|
+
emit LogProductStoreDistributorInfoUpdated(distributorNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
|
192
|
+
}
|
193
|
+
|
194
|
+
function getDistributorInfo(NftId distributorNftId) external view returns (IDistribution.DistributorInfo memory info) {
|
195
|
+
return _distributors[_toNftKey32(distributorNftId, DISTRIBUTOR())];
|
196
|
+
}
|
197
|
+
|
198
|
+
//--- Referral ----------------------------------------------------------//
|
199
|
+
function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
|
200
|
+
Key32 key = referralId.toKey32();
|
201
|
+
_createMetadata(key);
|
202
|
+
_referrals[key] = referralInfo;
|
203
|
+
// solhint-disable-next-line avoid-tx-origin
|
204
|
+
emit LogProductStoreReferralInfoCreated(referralId, getState(key), msg.sender, tx.origin);
|
205
|
+
}
|
206
|
+
|
207
|
+
function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
|
208
|
+
Key32 key = referralId.toKey32();
|
209
|
+
(Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
|
210
|
+
_referrals[key] = referralInfo;
|
211
|
+
// solhint-disable-next-line avoid-tx-origin
|
212
|
+
emit LogProductStoreReferralInfoUpdated(referralId, oldState, newState, msg.sender, tx.origin, updatedIn);
|
213
|
+
}
|
214
|
+
|
215
|
+
function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
|
216
|
+
Key32 key = referralId.toKey32();
|
217
|
+
(Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
|
218
|
+
// solhint-disable-next-line avoid-tx-origin
|
219
|
+
emit LogProductStoreReferralInfoUpdated(referralId, oldState, newState, msg.sender, tx.origin, updatedIn);
|
220
|
+
}
|
221
|
+
|
222
|
+
function getReferralInfo(ReferralId referralId) external view returns (IDistribution.ReferralInfo memory referralInfo) {
|
223
|
+
return _referrals[referralId.toKey32()];
|
224
|
+
}
|
225
|
+
|
226
|
+
//--- Bundle ------------------------------------------------------------//
|
227
|
+
function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
|
228
|
+
_registerBalanceTarget(bundleNftId);
|
229
|
+
Key32 key = _toNftKey32(bundleNftId, BUNDLE());
|
230
|
+
_createMetadata(key);
|
231
|
+
_bundles[key] = bundle;
|
232
|
+
// solhint-disable-next-line avoid-tx-origin
|
233
|
+
emit LogProductStoreBundleInfoCreated(bundleNftId, getState(key), msg.sender, tx.origin);
|
234
|
+
}
|
235
|
+
|
236
|
+
function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
|
237
|
+
Key32 key = _toNftKey32(bundleNftId, BUNDLE());
|
238
|
+
(Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
|
239
|
+
_bundles[key] = bundle;
|
240
|
+
// solhint-disable-next-line avoid-tx-origin
|
241
|
+
emit LogProductStoreBundleInfoUpdated(bundleNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
|
242
|
+
}
|
243
|
+
|
244
|
+
function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
|
245
|
+
Key32 key = _toNftKey32(bundleNftId, BUNDLE());
|
246
|
+
(Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
|
247
|
+
// solhint-disable-next-line avoid-tx-origin
|
248
|
+
emit LogProductStoreBundleInfoUpdated(bundleNftId, oldState, newState, msg.sender, tx.origin, updatedIn);
|
249
|
+
}
|
250
|
+
|
251
|
+
function getBundleInfo(NftId bundleNftId) external view returns (IBundle.BundleInfo memory bundle) {
|
252
|
+
return _bundles[_toNftKey32(bundleNftId, BUNDLE())];
|
253
|
+
}
|
254
|
+
|
255
|
+
//--- Request -----------------------------------------------------------//
|
256
|
+
|
257
|
+
function createRequest(IOracle.RequestInfo memory request) external restricted() returns (RequestId requestId) {
|
258
|
+
requestId = _createNextRequestId();
|
259
|
+
Key32 key = requestId.toKey32();
|
260
|
+
_createMetadata(key);
|
261
|
+
_requests[key] = request;
|
262
|
+
// solhint-disable-next-line avoid-tx-origin
|
263
|
+
emit LogProductStoreRequestInfoCreated(requestId, getState(key), msg.sender, tx.origin);
|
264
|
+
}
|
265
|
+
|
266
|
+
function updateRequest(RequestId requestId, IOracle.RequestInfo memory request, StateId newState) external restricted() {
|
267
|
+
Key32 key = requestId.toKey32();
|
268
|
+
(Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
|
269
|
+
_requests[key] = request;
|
270
|
+
// solhint-disable-next-line avoid-tx-origin
|
271
|
+
emit LogProductStoreRequestInfoUpdated(requestId, oldState, newState, msg.sender, tx.origin, updatedIn);
|
272
|
+
}
|
273
|
+
|
274
|
+
function updateRequestState(RequestId requestId, StateId newState) external restricted() {
|
275
|
+
Key32 key = requestId.toKey32();
|
276
|
+
(Blocknumber updatedIn, StateId oldState) = _updateState(key, newState);
|
277
|
+
// solhint-disable-next-line avoid-tx-origin
|
278
|
+
emit LogProductStoreRequestInfoUpdated(requestId, oldState, newState, msg.sender, tx.origin, updatedIn);
|
279
|
+
}
|
280
|
+
|
281
|
+
function getRequestInfo(RequestId requestId) external view returns (IOracle.RequestInfo memory request) {
|
282
|
+
return _requests[requestId.toKey32()];
|
283
|
+
}
|
284
|
+
|
285
|
+
//--- balance and fee management functions ------------------------------//
|
286
|
+
|
287
|
+
function increaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
|
288
|
+
return _increaseBalance(targetNftId, amount);
|
289
|
+
}
|
290
|
+
|
291
|
+
function decreaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
|
292
|
+
return _decreaseBalance(targetNftId, amount);
|
293
|
+
}
|
294
|
+
|
295
|
+
function increaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
|
296
|
+
return _increaseFees(targetNftId, amount);
|
297
|
+
}
|
298
|
+
|
299
|
+
function decreaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
|
300
|
+
return _decreaseFees(targetNftId, amount);
|
301
|
+
}
|
302
|
+
|
303
|
+
function increaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
|
304
|
+
return _increaseLocked(targetNftId, amount);
|
305
|
+
}
|
306
|
+
|
307
|
+
function decreaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
|
308
|
+
return _decreaseLocked(targetNftId, amount);
|
309
|
+
}
|
310
|
+
|
311
|
+
//--- internal view/pure functions --------------------------------------//
|
312
|
+
function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
|
313
|
+
return nftId.toKey32(objectType);
|
314
|
+
}
|
315
|
+
|
316
|
+
function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
|
317
|
+
return claimId.toKey32(policyNftId);
|
318
|
+
}
|
319
|
+
|
320
|
+
function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
|
321
|
+
return payoutId.toKey32(policyNftId);
|
322
|
+
}
|
323
|
+
}
|
@@ -0,0 +1,290 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
+
|
6
|
+
import {IComponents} from "./module/IComponents.sol";
|
7
|
+
import {IInstance} from "./IInstance.sol";
|
8
|
+
import {IPolicy} from "./module/IPolicy.sol";
|
9
|
+
import {IRisk} from "./module/IRisk.sol";
|
10
|
+
|
11
|
+
import {BalanceStore} from "./base/BalanceStore.sol";
|
12
|
+
import {BaseStore} from "./BaseStore.sol";
|
13
|
+
import {Blocknumber} from "../type/Blocknumber.sol";
|
14
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
15
|
+
import {Key32} from "../type/Key32.sol";
|
16
|
+
import {NftId} from "../type/NftId.sol";
|
17
|
+
import {ObjectCounter} from "./base/ObjectCounter.sol";
|
18
|
+
import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
|
19
|
+
import {ObjectType, FEE, POLICY, PREMIUM, PRODUCT} from "../type/ObjectType.sol";
|
20
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
21
|
+
import {RiskId} from "../type/RiskId.sol";
|
22
|
+
import {StateId, KEEP_STATE} from "../type/StateId.sol";
|
23
|
+
|
24
|
+
|
25
|
+
contract ProductStore is
|
26
|
+
AccessManagedUpgradeable,
|
27
|
+
BalanceStore,
|
28
|
+
BaseStore,
|
29
|
+
ObjectCounter,
|
30
|
+
ObjectLifecycle
|
31
|
+
{
|
32
|
+
event LogProductStoreProductInfoCreated(NftId indexed productNftId, StateId indexed state, address indexed createdBy, address txOrigin);
|
33
|
+
event LogProductStoreProductInfoUpdated(NftId indexed productNftId, StateId indexed oldState, StateId indexed newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
34
|
+
event LogProductStoreFeeInfoCreated(NftId indexed productNftId, StateId indexed state, address indexed createdBy, address txOrigin);
|
35
|
+
event LogProductStoreFeeInfoUpdated(NftId indexed productNftId, address indexed updatedBy, address indexed txOrigin, Blocknumber lastUpdatedIn);
|
36
|
+
event LogProductStoreRiskInfoCreated(RiskId indexed riskId, StateId indexed state, address indexed createdBy, address txOrigin);
|
37
|
+
event LogProductStoreRiskInfoUpdated(RiskId indexed riskId, StateId indexed oldState, StateId indexed newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
38
|
+
event LogProductStorePolicyInfoCreated(NftId indexed policyNftId, StateId indexed state, address indexed createdBy, address txOrigin);
|
39
|
+
event LogProductStorePolicyInfoUpdated(NftId indexed policyNftId, StateId indexed oldState, StateId indexed newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
40
|
+
event LogProductStorePremiumInfoCreated(NftId indexed policyNftId, StateId indexed state, address indexed createdBy, address txOrigin);
|
41
|
+
event LogProductStorePremiumInfoUpdated(NftId indexed policyNftId, StateId indexed oldState, StateId indexed newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
42
|
+
event LogProductStoreClaimInfoCreated(NftId indexed policyNftId, ClaimId indexed claimId, StateId indexed state, address createdBy, address txOrigin);
|
43
|
+
event LogProductStoreClaimInfoUpdated(NftId indexed policyNftId, ClaimId indexed claimId, StateId indexed oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
44
|
+
event LogProductStorePayoutInfoCreated(NftId indexed policyNftId, PayoutId indexed payoutId, StateId indexed state, address createdBy, address txOrigin);
|
45
|
+
event LogProductStorePayoutInfoUpdated(NftId indexed policyNftId, PayoutId indexed payoutId, StateId indexed oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
46
|
+
|
47
|
+
mapping(Key32 key32 => IComponents.ProductInfo) private _products;
|
48
|
+
mapping(Key32 key32 => IComponents.FeeInfo) private _fees;
|
49
|
+
mapping(Key32 key32 => IRisk.RiskInfo) private _risks;
|
50
|
+
mapping(Key32 key32 => IPolicy.PolicyInfo) private _policies;
|
51
|
+
mapping(Key32 key32 => IPolicy.PremiumInfo) private _premiums;
|
52
|
+
mapping(Key32 key32 => IPolicy.ClaimInfo) private _claims;
|
53
|
+
mapping(Key32 key32 => IPolicy.PayoutInfo) private _payouts;
|
54
|
+
|
55
|
+
|
56
|
+
/// @dev This initializer needs to be called from the instance itself.
|
57
|
+
function initialize()
|
58
|
+
public
|
59
|
+
initializer()
|
60
|
+
{
|
61
|
+
address instance = msg.sender;
|
62
|
+
address authority = IInstance(instance).authority();
|
63
|
+
|
64
|
+
__AccessManaged_init(authority);
|
65
|
+
// double initialization, safe
|
66
|
+
_initializeLifecycle();
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
//--- Product -----------------------------------------------------------//
|
71
|
+
|
72
|
+
function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
|
73
|
+
Key32 key = _toNftKey32(productNftId, PRODUCT());
|
74
|
+
_createMetadata(key);
|
75
|
+
_products[key] = info;
|
76
|
+
// solhint-disable-next-line avoid-tx-origin
|
77
|
+
emit LogProductStoreProductInfoCreated(productNftId, getState(key), msg.sender, tx.origin);
|
78
|
+
}
|
79
|
+
|
80
|
+
function updateProduct(NftId productNftId, IComponents.ProductInfo memory info, StateId newState) external restricted() {
|
81
|
+
Key32 key = _toNftKey32(productNftId, PRODUCT());
|
82
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
83
|
+
_products[key] = info;
|
84
|
+
// solhint-disable-next-line avoid-tx-origin
|
85
|
+
emit LogProductStoreProductInfoUpdated(productNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
86
|
+
}
|
87
|
+
|
88
|
+
function getProductInfo(NftId productNftId) external view returns (IComponents.ProductInfo memory info) {
|
89
|
+
return _products[_toNftKey32(productNftId, PRODUCT())];
|
90
|
+
}
|
91
|
+
|
92
|
+
//--- Fee -----------------------------------------------------------//
|
93
|
+
|
94
|
+
function createFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
|
95
|
+
Key32 key = _toNftKey32(productNftId, FEE());
|
96
|
+
_createMetadata(key);
|
97
|
+
_fees[key] = info;
|
98
|
+
// solhint-disable-next-line avoid-tx-origin
|
99
|
+
emit LogProductStoreFeeInfoCreated(productNftId, getState(key), msg.sender, tx.origin);
|
100
|
+
}
|
101
|
+
|
102
|
+
// Fee only has one state, so no change change possible
|
103
|
+
function updateFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
|
104
|
+
Key32 key = _toNftKey32(productNftId, FEE());
|
105
|
+
(Blocknumber lastUpdatedIn,) = _updateState(key, KEEP_STATE());
|
106
|
+
_fees[key] = info;
|
107
|
+
// solhint-disable-next-line avoid-tx-origin
|
108
|
+
emit LogProductStoreFeeInfoUpdated(productNftId, msg.sender, tx.origin, lastUpdatedIn);
|
109
|
+
}
|
110
|
+
|
111
|
+
function getFeeInfo(NftId productNftId) external view returns (IComponents.FeeInfo memory info) {
|
112
|
+
return _fees[_toNftKey32(productNftId, FEE())];
|
113
|
+
}
|
114
|
+
|
115
|
+
//--- Risk --------------------------------------------------------------//
|
116
|
+
function createRisk(RiskId riskId, IRisk.RiskInfo memory info) external restricted() {
|
117
|
+
Key32 key = riskId.toKey32();
|
118
|
+
_createMetadata(key);
|
119
|
+
_risks[key] = info;
|
120
|
+
// solhint-disable-next-line avoid-tx-origin
|
121
|
+
emit LogProductStoreRiskInfoCreated(riskId, getState(key), msg.sender, tx.origin);
|
122
|
+
}
|
123
|
+
|
124
|
+
function updateRisk(RiskId riskId, IRisk.RiskInfo memory info, StateId newState) external restricted() {
|
125
|
+
Key32 key = riskId.toKey32();
|
126
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
127
|
+
_risks[key] = info;
|
128
|
+
// solhint-disable-next-line avoid-tx-origin
|
129
|
+
emit LogProductStoreRiskInfoUpdated(riskId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
130
|
+
}
|
131
|
+
|
132
|
+
function updateRiskState(RiskId riskId, StateId newState) external restricted() {
|
133
|
+
// _updateState(riskId.toKey32(), newState);
|
134
|
+
Key32 key = riskId.toKey32();
|
135
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
136
|
+
// solhint-disable-next-line avoid-tx-origin
|
137
|
+
emit LogProductStoreRiskInfoUpdated(riskId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
138
|
+
}
|
139
|
+
|
140
|
+
function getRiskInfo(RiskId riskId) external view returns (IRisk.RiskInfo memory info) {
|
141
|
+
return _risks[riskId.toKey32()];
|
142
|
+
}
|
143
|
+
|
144
|
+
//--- Application (Policy) ----------------------------------------------//
|
145
|
+
|
146
|
+
function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
|
147
|
+
_registerBalanceTarget(applicationNftId);
|
148
|
+
Key32 key = _toNftKey32(applicationNftId, POLICY());
|
149
|
+
_createMetadata(key);
|
150
|
+
_policies[key] = policy;
|
151
|
+
// solhint-disable-next-line avoid-tx-origin
|
152
|
+
emit LogProductStorePolicyInfoCreated(applicationNftId, getState(key), msg.sender, tx.origin);
|
153
|
+
}
|
154
|
+
|
155
|
+
function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
156
|
+
Key32 key = _toNftKey32(applicationNftId, POLICY());
|
157
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
158
|
+
_policies[key] = policy;
|
159
|
+
// solhint-disable-next-line avoid-tx-origin
|
160
|
+
emit LogProductStorePolicyInfoUpdated(applicationNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
161
|
+
}
|
162
|
+
|
163
|
+
function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
|
164
|
+
Key32 key = _toNftKey32(applicationNftId, POLICY());
|
165
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
166
|
+
// solhint-disable-next-line avoid-tx-origin
|
167
|
+
emit LogProductStorePolicyInfoUpdated(applicationNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
168
|
+
}
|
169
|
+
|
170
|
+
//--- Policy ------------------------------------------------------------//
|
171
|
+
|
172
|
+
function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
173
|
+
Key32 key = _toNftKey32(policyNftId, POLICY());
|
174
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
175
|
+
_policies[key] = policy;
|
176
|
+
// solhint-disable-next-line avoid-tx-origin
|
177
|
+
emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
178
|
+
}
|
179
|
+
|
180
|
+
function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
181
|
+
Key32 key = _toNftKey32(policyNftId, POLICY());
|
182
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
183
|
+
_policies[key] = policy;
|
184
|
+
// solhint-disable-next-line avoid-tx-origin
|
185
|
+
emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
186
|
+
}
|
187
|
+
|
188
|
+
function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
|
189
|
+
Key32 key = _toNftKey32(policyNftId, POLICY());
|
190
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
191
|
+
// solhint-disable-next-line avoid-tx-origin
|
192
|
+
emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
193
|
+
}
|
194
|
+
|
195
|
+
function getPolicyInfo(NftId policyNftId) external view returns (IPolicy.PolicyInfo memory policy) {
|
196
|
+
return _policies[_toNftKey32(policyNftId, POLICY())];
|
197
|
+
}
|
198
|
+
|
199
|
+
//--- Premium (Policy) ----------------------------------------------//
|
200
|
+
|
201
|
+
function createPremium(NftId policyNftId, IPolicy.PremiumInfo memory premium) external restricted() {
|
202
|
+
Key32 key = _toNftKey32(policyNftId, PREMIUM());
|
203
|
+
_createMetadata(key);
|
204
|
+
_premiums[key] = premium;
|
205
|
+
// solhint-disable-next-line avoid-tx-origin
|
206
|
+
emit LogProductStorePremiumInfoCreated(policyNftId, getState(key), msg.sender, tx.origin);
|
207
|
+
}
|
208
|
+
|
209
|
+
function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
|
210
|
+
Key32 key = _toNftKey32(policyNftId, PREMIUM());
|
211
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
212
|
+
// solhint-disable-next-line avoid-tx-origin
|
213
|
+
emit LogProductStorePremiumInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
214
|
+
}
|
215
|
+
|
216
|
+
function getPremiumInfo(NftId policyNftId) external view returns (IPolicy.PremiumInfo memory premium) {
|
217
|
+
return _premiums[_toNftKey32(policyNftId, PREMIUM())];
|
218
|
+
}
|
219
|
+
|
220
|
+
//--- Claim -------------------------------------------------------------//
|
221
|
+
|
222
|
+
function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
|
223
|
+
Key32 key = _toClaimKey32(policyNftId, claimId);
|
224
|
+
_createMetadata(key);
|
225
|
+
_claims[key] = claim;
|
226
|
+
// solhint-disable-next-line avoid-tx-origin
|
227
|
+
emit LogProductStoreClaimInfoCreated(policyNftId, claimId, getState(key), msg.sender, tx.origin);
|
228
|
+
}
|
229
|
+
|
230
|
+
function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
|
231
|
+
Key32 key = _toClaimKey32(policyNftId, claimId);
|
232
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
233
|
+
_claims[key] = claim;
|
234
|
+
// solhint-disable-next-line avoid-tx-origin
|
235
|
+
emit LogProductStoreClaimInfoUpdated(policyNftId, claimId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
236
|
+
}
|
237
|
+
|
238
|
+
function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
|
239
|
+
Key32 key = _toClaimKey32(policyNftId, claimId);
|
240
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
241
|
+
// solhint-disable-next-line avoid-tx-origin
|
242
|
+
emit LogProductStoreClaimInfoUpdated(policyNftId, claimId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
243
|
+
}
|
244
|
+
|
245
|
+
function getClaimInfo(NftId policyNftId, ClaimId claimId) external view returns (IPolicy.ClaimInfo memory claim) {
|
246
|
+
return _claims[_toClaimKey32(policyNftId, claimId)];
|
247
|
+
}
|
248
|
+
|
249
|
+
//--- Payout ------------------------------------------------------------//
|
250
|
+
|
251
|
+
function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
252
|
+
Key32 key = _toPayoutKey32(policyNftId, payoutId);
|
253
|
+
_createMetadata(key);
|
254
|
+
_payouts[key] = payout;
|
255
|
+
// solhint-disable-next-line avoid-tx-origin
|
256
|
+
emit LogProductStorePayoutInfoCreated(policyNftId, payoutId, getState(key), msg.sender, tx.origin);
|
257
|
+
}
|
258
|
+
|
259
|
+
function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
|
260
|
+
Key32 key = _toPayoutKey32(policyNftId, payoutId);
|
261
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
262
|
+
_payouts[key] = payout;
|
263
|
+
// solhint-disable-next-line avoid-tx-origin
|
264
|
+
emit LogProductStorePayoutInfoUpdated(policyNftId, payoutId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
265
|
+
}
|
266
|
+
|
267
|
+
function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
|
268
|
+
Key32 key = _toPayoutKey32(policyNftId, payoutId);
|
269
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
270
|
+
// solhint-disable-next-line avoid-tx-origin
|
271
|
+
emit LogProductStorePayoutInfoUpdated(policyNftId, payoutId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
272
|
+
}
|
273
|
+
|
274
|
+
function getPayoutInfo(NftId policyNftId, PayoutId payoutId) external view returns (IPolicy.PayoutInfo memory payout) {
|
275
|
+
return _payouts[_toPayoutKey32(policyNftId, payoutId)];
|
276
|
+
}
|
277
|
+
|
278
|
+
//--- internal view/pure functions --------------------------------------//
|
279
|
+
function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
|
280
|
+
return nftId.toKey32(objectType);
|
281
|
+
}
|
282
|
+
|
283
|
+
function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
|
284
|
+
return claimId.toKey32(policyNftId);
|
285
|
+
}
|
286
|
+
|
287
|
+
function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
|
288
|
+
return payoutId.toKey32(policyNftId);
|
289
|
+
}
|
290
|
+
}
|