@etherisc/gif-next 0.0.2-e769e2e-077 → 0.0.2-e79d227-681
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/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -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/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -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/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -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 +1324 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +154 -546
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +380 -229
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +198 -96
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +186 -238
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +223 -47
- 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 +1429 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -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 +1430 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +153 -86
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +181 -119
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +174 -215
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1666 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +876 -160
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +260 -268
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +163 -81
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +506 -338
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/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 +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- 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 +961 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -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 +776 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +877 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1254 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +456 -187
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +218 -80
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +264 -26
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +115 -354
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +464 -223
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +152 -682
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +590 -382
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +190 -76
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +147 -161
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +147 -77
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1148 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +343 -168
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +200 -90
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +88 -8
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +196 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +364 -121
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +134 -86
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +176 -160
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +51 -3
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +475 -294
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +199 -81
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +229 -275
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +172 -102
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +201 -486
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -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 +412 -35
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +225 -196
- 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 +761 -87
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +278 -306
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +154 -78
- 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 +1067 -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 +185 -135
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +79 -274
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +626 -252
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +209 -99
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +55 -101
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -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/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +74 -79
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +561 -13
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +120 -108
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -13
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
- 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 +36 -1
- 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 +49 -1
- 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 +129 -360
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -98
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
- 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 +62 -87
- 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 +55 -101
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +697 -25
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -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 +462 -634
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +546 -48
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +613 -871
- 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 +185 -81
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +633 -173
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +166 -68
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -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 +40 -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 +17 -12
- 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 +47 -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 +149 -2
- 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 +99 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -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 +129 -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/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- 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 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -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/authorization/AccessAdmin.sol +616 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +289 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +137 -0
- package/contracts/authorization/IAuthorization.sol +60 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +139 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +145 -124
- package/contracts/distribution/DistributionService.sol +156 -99
- package/contracts/distribution/DistributionServiceManager.sol +13 -25
- package/contracts/distribution/IDistributionComponent.sol +27 -41
- package/contracts/distribution/IDistributionService.sol +29 -10
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +431 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +58 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +39 -44
- package/contracts/instance/IInstanceService.sol +33 -42
- package/contracts/instance/Instance.sol +137 -124
- package/contracts/instance/InstanceAdmin.sol +278 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +217 -0
- package/contracts/instance/InstanceReader.sol +249 -36
- package/contracts/instance/InstanceService.sol +227 -151
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +85 -57
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/BalanceStore.sol +12 -7
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/base/ObjectSet.sol +78 -0
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +11 -13
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +26 -25
- package/contracts/instance/module/IRisk.sol +1 -0
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +47 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -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 +309 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +175 -0
- package/contracts/pool/BasicPoolAuthorization.sol +68 -0
- package/contracts/pool/BundleService.sol +232 -122
- package/contracts/pool/BundleServiceManager.sol +13 -25
- package/contracts/pool/IBundleService.sol +34 -18
- package/contracts/pool/IPoolComponent.sol +20 -70
- package/contracts/pool/IPoolService.sol +57 -51
- package/contracts/pool/Pool.sol +208 -162
- package/contracts/pool/PoolService.sol +372 -181
- package/contracts/pool/PoolServiceManager.sol +12 -24
- package/contracts/product/ApplicationService.sol +90 -84
- package/contracts/product/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +42 -0
- package/contracts/product/ClaimService.sol +331 -153
- package/contracts/product/ClaimServiceManager.sol +12 -9
- package/contracts/product/IApplicationService.sol +7 -3
- package/contracts/product/IClaimService.sol +35 -5
- package/contracts/product/IPolicyService.sol +47 -35
- package/contracts/product/IPricingService.sol +11 -11
- package/contracts/product/IProductComponent.sol +26 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -2
- package/contracts/product/PolicyService.sol +524 -262
- package/contracts/product/PolicyServiceManager.sol +12 -27
- package/contracts/product/PricingService.sol +64 -64
- package/contracts/product/PricingServiceManager.sol +12 -24
- package/contracts/product/Product.sol +189 -139
- package/contracts/product/{ProductService.sol → RiskService.sol} +35 -50
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +68 -37
- package/contracts/registry/IRegistry.sol +90 -28
- package/contracts/registry/IRegistryService.sol +26 -43
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +424 -228
- package/contracts/registry/RegistryAdmin.sol +451 -0
- package/contracts/registry/RegistryService.sol +63 -149
- package/contracts/registry/RegistryServiceManager.sol +23 -30
- package/contracts/registry/ReleaseLifecycle.sol +30 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +175 -0
- package/contracts/registry/TokenRegistry.sol +187 -59
- package/contracts/shared/Component.sol +56 -125
- package/contracts/shared/ComponentService.sol +411 -201
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +40 -23
- package/contracts/shared/ContractLib.sol +224 -0
- package/contracts/shared/IComponent.sol +11 -18
- package/contracts/shared/IComponentService.sol +52 -13
- package/contracts/shared/IInstanceLinkedComponent.sol +11 -16
- package/contracts/shared/IKeyValueStore.sol +2 -1
- package/contracts/shared/ILifecycle.sol +3 -2
- package/contracts/shared/INftOwnable.sol +3 -1
- package/contracts/shared/IPolicyHolder.sol +12 -17
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/IService.sol +9 -2
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
- package/contracts/shared/InstanceLinkedComponent.sol +103 -43
- package/contracts/shared/KeyValueStore.sol +30 -68
- package/contracts/shared/Lifecycle.sol +30 -63
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +31 -22
- package/contracts/shared/PolicyHolder.sol +18 -50
- package/contracts/shared/Registerable.sol +19 -11
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +44 -37
- package/contracts/shared/TokenHandler.sol +358 -27
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +133 -37
- package/contracts/staking/IStakingService.sol +93 -41
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +394 -101
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +24 -18
- package/contracts/staking/StakingReader.sol +190 -0
- package/contracts/staking/StakingService.sol +282 -42
- package/contracts/staking/StakingServiceManager.sol +10 -7
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +39 -3
- package/contracts/type/Blocknumber.sol +20 -2
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +1 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +16 -4
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +178 -65
- 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 +31 -5
- package/contracts/type/RoleId.sol +98 -74
- package/contracts/type/Seconds.sol +48 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +41 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +17 -3
- package/contracts/type/UFixed.sol +38 -9
- package/contracts/type/Version.sol +4 -2
- 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 +11 -7
- 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 -132
- 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/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 -673
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -636
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -308
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -688
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- 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/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -336
- package/contracts/instance/base/ObjectManager.sol +0 -82
- package/contracts/product/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -213
- package/contracts/registry/ReleaseManager.sol +0 -375
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -4,15 +4,13 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
5
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
7
|
-
import {Key32
|
7
|
+
import {Key32} from "../type/Key32.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
9
|
import {ClaimId} from "../type/ClaimId.sol";
|
10
|
-
import {ObjectType, BUNDLE,
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {StateId
|
14
|
-
import {TimestampLib} from "../type/Timestamp.sol";
|
15
|
-
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
10
|
+
import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
|
11
|
+
import {RequestId} from "../type/RequestId.sol";
|
12
|
+
import {RiskId} from "../type/RiskId.sol";
|
13
|
+
import {StateId} from "../type/StateId.sol";
|
16
14
|
import {ReferralId} from "../type/Referral.sol";
|
17
15
|
import {DistributorType} from "../type/DistributorType.sol";
|
18
16
|
import {PayoutId} from "../type/PayoutId.sol";
|
@@ -20,30 +18,41 @@ import {PayoutId} from "../type/PayoutId.sol";
|
|
20
18
|
import {BalanceStore} from "./base/BalanceStore.sol";
|
21
19
|
import {IInstance} from "./IInstance.sol";
|
22
20
|
import {KeyValueStore} from "../shared/KeyValueStore.sol";
|
23
|
-
import {
|
21
|
+
import {ObjectCounter} from "./base/ObjectCounter.sol";
|
24
22
|
|
25
23
|
import {IBundle} from "./module/IBundle.sol";
|
26
24
|
import {IComponents} from "./module/IComponents.sol";
|
27
25
|
import {IDistribution} from "./module/IDistribution.sol";
|
28
26
|
import {IPolicy} from "./module/IPolicy.sol";
|
27
|
+
import {IOracle} from "../oracle/IOracle.sol";
|
29
28
|
import {IRisk} from "./module/IRisk.sol";
|
30
29
|
|
30
|
+
import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
|
31
|
+
|
31
32
|
|
32
33
|
contract InstanceStore is
|
33
34
|
AccessManagedUpgradeable,
|
35
|
+
BalanceStore,
|
34
36
|
KeyValueStore,
|
35
|
-
|
37
|
+
ObjectCounter,
|
38
|
+
ObjectLifecycle
|
36
39
|
{
|
37
|
-
|
40
|
+
|
41
|
+
/// @dev This initializer needs to be called from the instance itself.
|
42
|
+
function initialize()
|
38
43
|
public
|
39
44
|
initializer()
|
40
45
|
{
|
46
|
+
address instance = msg.sender;
|
41
47
|
address authority = IInstance(instance).authority();
|
48
|
+
|
42
49
|
__AccessManaged_init(authority);
|
43
|
-
|
50
|
+
// double initialization, safe
|
51
|
+
_initializeLifecycle();
|
44
52
|
}
|
45
53
|
|
46
54
|
//--- Component ---------------------------------------------------------//
|
55
|
+
|
47
56
|
function createComponent(
|
48
57
|
NftId componentNftId,
|
49
58
|
IComponents.ComponentInfo memory componentInfo
|
@@ -51,8 +60,8 @@ contract InstanceStore is
|
|
51
60
|
external
|
52
61
|
restricted()
|
53
62
|
{
|
54
|
-
|
55
|
-
|
63
|
+
_registerBalanceTarget(componentNftId);
|
64
|
+
_create(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo));
|
56
65
|
}
|
57
66
|
|
58
67
|
function updateComponent(
|
@@ -63,24 +72,20 @@ contract InstanceStore is
|
|
63
72
|
external
|
64
73
|
restricted()
|
65
74
|
{
|
66
|
-
|
75
|
+
_update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
|
67
76
|
}
|
68
77
|
|
69
|
-
//---
|
78
|
+
//--- Product -----------------------------------------------------------//
|
70
79
|
|
71
80
|
function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
|
72
|
-
|
81
|
+
_create(_toNftKey32(productNftId, PRODUCT()), abi.encode(info));
|
73
82
|
}
|
74
83
|
|
75
84
|
function updateProduct(NftId productNftId, IComponents.ProductInfo memory info, StateId newState) external restricted() {
|
76
|
-
|
77
|
-
}
|
78
|
-
|
79
|
-
function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
|
80
|
-
updateState(_toNftKey32(productNftId, PRODUCT()), newState);
|
85
|
+
_update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
|
81
86
|
}
|
82
87
|
|
83
|
-
//---
|
88
|
+
//--- Pool --------------------------------------------------------------//
|
84
89
|
|
85
90
|
function createPool(
|
86
91
|
NftId poolNftId,
|
@@ -89,133 +94,156 @@ contract InstanceStore is
|
|
89
94
|
external
|
90
95
|
restricted()
|
91
96
|
{
|
92
|
-
|
97
|
+
_create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
|
93
98
|
}
|
94
99
|
|
95
100
|
function updatePool(NftId poolNftId, IComponents.PoolInfo memory info, StateId newState) external restricted() {
|
96
|
-
|
97
|
-
}
|
98
|
-
|
99
|
-
function updatePoolState(NftId poolNftId, StateId newState) external restricted() {
|
100
|
-
updateState(_toNftKey32(poolNftId, POOL()), newState);
|
101
|
+
_update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
|
101
102
|
}
|
102
103
|
|
103
|
-
//--- DistributorType
|
104
|
+
//--- DistributorType ---------------------------------------------------//
|
104
105
|
function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
|
105
|
-
|
106
|
+
_create(distributorType.toKey32(), abi.encode(info));
|
106
107
|
}
|
107
108
|
|
108
109
|
function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
|
109
|
-
|
110
|
+
_update(distributorType.toKey32(), abi.encode(info), newState);
|
110
111
|
}
|
111
112
|
|
112
113
|
function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
|
113
|
-
|
114
|
+
_updateState(distributorType.toKey32(), newState);
|
114
115
|
}
|
115
116
|
|
116
117
|
//--- Distributor -------------------------------------------------------//
|
117
118
|
function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
|
118
|
-
|
119
|
+
_registerBalanceTarget(distributorNftId);
|
120
|
+
_create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
|
119
121
|
}
|
120
122
|
|
121
123
|
function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
|
122
|
-
|
124
|
+
_update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
|
123
125
|
}
|
124
126
|
|
125
127
|
function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
|
126
|
-
|
128
|
+
_updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
|
127
129
|
}
|
128
130
|
|
129
131
|
//--- Referral ----------------------------------------------------------//
|
130
132
|
function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
|
131
|
-
|
133
|
+
_create(referralId.toKey32(), abi.encode(referralInfo));
|
132
134
|
}
|
133
135
|
|
134
136
|
function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
|
135
|
-
|
137
|
+
_update(referralId.toKey32(), abi.encode(referralInfo), newState);
|
136
138
|
}
|
137
139
|
|
138
140
|
function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
|
139
|
-
|
141
|
+
_updateState(referralId.toKey32(), newState);
|
140
142
|
}
|
141
143
|
|
142
144
|
//--- Bundle ------------------------------------------------------------//
|
143
145
|
function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
|
144
|
-
|
145
|
-
|
146
|
+
_registerBalanceTarget(bundleNftId);
|
147
|
+
_create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
|
146
148
|
}
|
147
149
|
|
148
150
|
function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
|
149
|
-
|
151
|
+
_update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
|
150
152
|
}
|
151
153
|
|
152
154
|
function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
|
153
|
-
|
155
|
+
_updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
|
154
156
|
}
|
155
157
|
|
156
158
|
//--- Risk --------------------------------------------------------------//
|
157
159
|
function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
|
158
|
-
|
160
|
+
_create(riskId.toKey32(), abi.encode(risk));
|
159
161
|
}
|
160
162
|
|
161
163
|
function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
|
162
|
-
|
164
|
+
_update(riskId.toKey32(), abi.encode(risk), newState);
|
163
165
|
}
|
164
166
|
|
165
167
|
function updateRiskState(RiskId riskId, StateId newState) external restricted() {
|
166
|
-
|
168
|
+
_updateState(riskId.toKey32(), newState);
|
167
169
|
}
|
168
170
|
|
169
171
|
//--- Application (Policy) ----------------------------------------------//
|
170
172
|
function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
|
171
|
-
|
173
|
+
_registerBalanceTarget(applicationNftId);
|
174
|
+
_create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
|
172
175
|
}
|
173
176
|
|
174
177
|
function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
175
|
-
|
178
|
+
_update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
|
176
179
|
}
|
177
180
|
|
178
181
|
function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
|
179
|
-
|
182
|
+
_updateState(_toNftKey32(applicationNftId, POLICY()), newState);
|
180
183
|
}
|
181
184
|
|
182
185
|
//--- Policy ------------------------------------------------------------//
|
183
186
|
function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
184
|
-
|
187
|
+
_update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
|
185
188
|
}
|
186
189
|
|
187
190
|
function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
188
|
-
|
191
|
+
_update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
|
189
192
|
}
|
190
193
|
|
191
194
|
function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
|
192
|
-
|
195
|
+
_updateState(_toNftKey32(policyNftId, POLICY()), newState);
|
196
|
+
}
|
197
|
+
|
198
|
+
|
199
|
+
//--- Premium (Policy) ----------------------------------------------//
|
200
|
+
function createPremium(NftId policyNftId, IPolicy.PremiumInfo memory premium) external restricted() {
|
201
|
+
_create(_toNftKey32(policyNftId, PREMIUM()), abi.encode(premium));
|
202
|
+
}
|
203
|
+
|
204
|
+
function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
|
205
|
+
_updateState(_toNftKey32(policyNftId, PREMIUM()), newState);
|
193
206
|
}
|
194
207
|
|
195
208
|
//--- Claim -------------------------------------------------------------//
|
196
209
|
function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
|
197
|
-
|
210
|
+
_create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
|
198
211
|
}
|
199
212
|
|
200
213
|
function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
|
201
|
-
|
214
|
+
_update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
|
202
215
|
}
|
203
216
|
|
204
217
|
function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
|
205
|
-
|
218
|
+
_updateState(_toClaimKey32(policyNftId, claimId), newState);
|
206
219
|
}
|
207
220
|
|
208
221
|
//--- Payout ------------------------------------------------------------//
|
209
222
|
function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
210
|
-
|
223
|
+
_create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
|
211
224
|
}
|
212
225
|
|
213
226
|
function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
|
214
|
-
|
227
|
+
_update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
|
215
228
|
}
|
216
229
|
|
217
230
|
function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
|
218
|
-
|
231
|
+
_updateState(_toPayoutKey32(policyNftId, payoutId), newState);
|
232
|
+
}
|
233
|
+
|
234
|
+
//--- Request -----------------------------------------------------------//
|
235
|
+
|
236
|
+
function createRequest(IOracle.RequestInfo memory request) external restricted() returns (RequestId requestId) {
|
237
|
+
requestId = _createNextRequestId();
|
238
|
+
_create(requestId.toKey32(), abi.encode(request));
|
239
|
+
}
|
240
|
+
|
241
|
+
function updateRequest(RequestId requestId, IOracle.RequestInfo memory request, StateId newState) external restricted() {
|
242
|
+
_update(requestId.toKey32(), abi.encode(request), newState);
|
243
|
+
}
|
244
|
+
|
245
|
+
function updateRequestState(RequestId requestId, StateId newState) external restricted() {
|
246
|
+
_updateState(requestId.toKey32(), newState);
|
219
247
|
}
|
220
248
|
|
221
249
|
//--- balance and fee management functions ------------------------------//
|
@@ -0,0 +1,119 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
5
|
+
import {Key32} from "../type/Key32.sol";
|
6
|
+
import {LibNftIdSet} from "../type/NftIdSet.sol";
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {RiskIdLib, RiskId} from "../type/RiskId.sol";
|
9
|
+
|
10
|
+
import {ObjectSet} from "./base/ObjectSet.sol";
|
11
|
+
|
12
|
+
contract RiskSet is
|
13
|
+
ObjectSet
|
14
|
+
{
|
15
|
+
using LibNftIdSet for LibNftIdSet.Set;
|
16
|
+
|
17
|
+
event LogRiskSetPolicyLinked(RiskId riskId, NftId policyNftId);
|
18
|
+
event LogRiskSetPolicyUnlinked(RiskId riskId, NftId policyNftId);
|
19
|
+
|
20
|
+
event LogRiskSetRiskAdded(NftId productNftId, RiskId riskId);
|
21
|
+
event LogRiskSetRiskActive(NftId poolNftId, RiskId riskId);
|
22
|
+
event LogRiskSetRiskPaused(NftId poolNftId, RiskId riskId);
|
23
|
+
event LogRiskSetRiskArchived(NftId poolNftId, RiskId riskId);
|
24
|
+
|
25
|
+
error ErrorRiskSetRiskLocked(RiskId riskId, NftId policyNftId);
|
26
|
+
error ErrorRiskSetRiskUnknown(RiskId riskId);
|
27
|
+
error ErrorRiskSetRiskNotRegistered(RiskId riskId);
|
28
|
+
|
29
|
+
mapping(RiskId riskId => LibNftIdSet.Set policies) internal _activePolicies;
|
30
|
+
|
31
|
+
/// @dev links a policy to its bundle
|
32
|
+
function linkPolicy(NftId productNftId, RiskId riskId, NftId policyNftId) external restricted() {
|
33
|
+
|
34
|
+
// ensure risk is active (in active set) and registered with this instance
|
35
|
+
if (!_isActive(productNftId, riskId.toKey32())) {
|
36
|
+
revert ErrorRiskSetRiskLocked(riskId, policyNftId);
|
37
|
+
}
|
38
|
+
|
39
|
+
_activePolicies[riskId].add(policyNftId);
|
40
|
+
emit LogRiskSetPolicyLinked(riskId, policyNftId);
|
41
|
+
}
|
42
|
+
|
43
|
+
/// @dev Unlinks a policy from its risk.
|
44
|
+
function unlinkPolicy(NftId productNftId, RiskId riskId, NftId policyNftId) external restricted() {
|
45
|
+
|
46
|
+
// ensure risk is registered with this instance
|
47
|
+
if (!_contains(productNftId, riskId.toKey32())) {
|
48
|
+
revert ErrorRiskSetRiskUnknown(riskId);
|
49
|
+
}
|
50
|
+
|
51
|
+
_activePolicies[riskId].remove(policyNftId);
|
52
|
+
emit LogRiskSetPolicyUnlinked(riskId, policyNftId);
|
53
|
+
}
|
54
|
+
|
55
|
+
/// @dev add a new risk to a product registered with this instance
|
56
|
+
// the corresponding product is fetched via instance reader
|
57
|
+
function add(RiskId riskId) external restricted() {
|
58
|
+
NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
|
59
|
+
|
60
|
+
// ensure product is registered with instance
|
61
|
+
if(productNftId.eqz()) {
|
62
|
+
revert ErrorRiskSetRiskNotRegistered(riskId);
|
63
|
+
}
|
64
|
+
|
65
|
+
_add(productNftId, riskId.toKey32());
|
66
|
+
emit LogRiskSetRiskAdded(productNftId, riskId);
|
67
|
+
}
|
68
|
+
|
69
|
+
/// @dev Applications linked to active risks may be underwritten
|
70
|
+
function activate(RiskId riskId) external restricted() {
|
71
|
+
NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
|
72
|
+
_activate(productNftId, riskId.toKey32());
|
73
|
+
emit LogRiskSetRiskActive(productNftId, riskId);
|
74
|
+
}
|
75
|
+
|
76
|
+
/// @dev Applications linked to paused/archived risks may not be underwritten
|
77
|
+
function pause(RiskId riskId) external restricted() {
|
78
|
+
NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
|
79
|
+
_deactivate(productNftId, riskId.toKey32());
|
80
|
+
emit LogRiskSetRiskPaused(productNftId, riskId);
|
81
|
+
}
|
82
|
+
|
83
|
+
function checkRisk(NftId productNftId, RiskId riskId)
|
84
|
+
public
|
85
|
+
view
|
86
|
+
returns (bool exists, bool active)
|
87
|
+
{
|
88
|
+
Key32 riskKey32 = riskId.toKey32();
|
89
|
+
exists = _contains(productNftId, riskKey32);
|
90
|
+
|
91
|
+
if (exists) {
|
92
|
+
active = _isActive(productNftId, riskKey32);
|
93
|
+
}
|
94
|
+
}
|
95
|
+
|
96
|
+
function risks(NftId productNftId) external view returns(uint256) {
|
97
|
+
return _objects(productNftId);
|
98
|
+
}
|
99
|
+
|
100
|
+
function getRiskId(NftId productNftId, uint256 idx) external view returns(RiskId riskId) {
|
101
|
+
return RiskIdLib.toRiskId(_getObject(productNftId, idx).toKeyId());
|
102
|
+
}
|
103
|
+
|
104
|
+
function activeRisks(NftId productNftId) external view returns(uint256) {
|
105
|
+
return _activeObjs(productNftId);
|
106
|
+
}
|
107
|
+
|
108
|
+
function getActiveRiskId(NftId productNftId, uint256 idx) external view returns(RiskId riskId) {
|
109
|
+
return RiskIdLib.toRiskId(_getActiveObject(productNftId, idx).toKeyId());
|
110
|
+
}
|
111
|
+
|
112
|
+
function linkedPolicies(RiskId riskId) external view returns(uint256) {
|
113
|
+
return _activePolicies[riskId].size();
|
114
|
+
}
|
115
|
+
|
116
|
+
function getLinkedPolicyNftId(RiskId riskId, uint256 idx) external view returns(NftId policyNftId) {
|
117
|
+
return _activePolicies[riskId].getElementAt(idx);
|
118
|
+
}
|
119
|
+
}
|
@@ -54,13 +54,13 @@ contract BalanceStore {
|
|
54
54
|
feeAmount = _feeAmount[targetNftId];
|
55
55
|
}
|
56
56
|
|
57
|
-
function
|
57
|
+
function _registerBalanceTarget(NftId targetNftId) internal {
|
58
58
|
if (_isRegistered[targetNftId]) {
|
59
59
|
revert ErrorBalanceStoreTargetAlreadyRegistered(targetNftId);
|
60
60
|
}
|
61
61
|
|
62
62
|
_isRegistered[targetNftId] = true;
|
63
|
-
|
63
|
+
_setLastUpdatedIn(targetNftId);
|
64
64
|
|
65
65
|
emit LogBalanceStoreTargetRegistered(targetNftId);
|
66
66
|
}
|
@@ -71,7 +71,7 @@ contract BalanceStore {
|
|
71
71
|
_feeAmount[targetNftId] = newBalance;
|
72
72
|
|
73
73
|
emit LogBalanceStoreFeesIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
74
|
-
|
74
|
+
_setLastUpdatedIn(targetNftId);
|
75
75
|
}
|
76
76
|
|
77
77
|
function _decreaseFees(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
|
@@ -79,7 +79,7 @@ contract BalanceStore {
|
|
79
79
|
_feeAmount[targetNftId] = newBalance;
|
80
80
|
|
81
81
|
emit LogBalanceStoreFeesDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
82
|
-
|
82
|
+
_setLastUpdatedIn(targetNftId);
|
83
83
|
}
|
84
84
|
|
85
85
|
//--- locked management -------------------------------------------------//
|
@@ -88,7 +88,7 @@ contract BalanceStore {
|
|
88
88
|
_lockedAmount[targetNftId] = newBalance;
|
89
89
|
|
90
90
|
emit LogBalanceStoreLockedIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
91
|
-
|
91
|
+
_setLastUpdatedIn(targetNftId);
|
92
92
|
}
|
93
93
|
|
94
94
|
function _decreaseLocked(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
|
@@ -96,7 +96,7 @@ contract BalanceStore {
|
|
96
96
|
_lockedAmount[targetNftId] = newBalance;
|
97
97
|
|
98
98
|
emit LogBalanceStoreLockedDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
99
|
-
|
99
|
+
_setLastUpdatedIn(targetNftId);
|
100
100
|
}
|
101
101
|
|
102
102
|
//--- balance management ------------------------------------------------//
|
@@ -105,7 +105,7 @@ contract BalanceStore {
|
|
105
105
|
_balanceAmount[targetNftId] = newBalance;
|
106
106
|
|
107
107
|
emit LogBalanceStoreBalanceIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
108
|
-
|
108
|
+
_setLastUpdatedIn(targetNftId);
|
109
109
|
}
|
110
110
|
|
111
111
|
function _decreaseBalance(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
|
@@ -113,6 +113,11 @@ contract BalanceStore {
|
|
113
113
|
_balanceAmount[targetNftId] = newBalance;
|
114
114
|
|
115
115
|
emit LogBalanceStoreBalanceDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
116
|
+
_setLastUpdatedIn(targetNftId);
|
117
|
+
}
|
118
|
+
|
119
|
+
//--- internal/private functions ----------------------------------------//
|
120
|
+
function _setLastUpdatedIn(NftId targetNftId) internal {
|
116
121
|
_lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
|
117
122
|
}
|
118
123
|
}
|
@@ -2,47 +2,24 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
-
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
6
5
|
|
7
6
|
import {IRegistry} from "../../registry/IRegistry.sol";
|
8
7
|
|
9
8
|
abstract contract Cloneable is
|
10
9
|
AccessManagedUpgradeable
|
11
10
|
{
|
12
|
-
event CloneableInitialized(address authority, address registry);
|
13
|
-
|
14
|
-
error CloneableAuthorityZero();
|
15
|
-
error CloneableRegistryInvalid(address registry);
|
16
|
-
|
17
11
|
IRegistry internal _registry;
|
18
12
|
|
19
|
-
constructor() {
|
20
|
-
_registry = IRegistry(address(0));
|
21
|
-
}
|
22
|
-
|
23
13
|
/// @dev call to initialize MUST be made in the same transaction as cloning of the contract
|
24
|
-
function
|
14
|
+
function __Cloneable_init(
|
25
15
|
address authority,
|
26
16
|
address registry
|
27
17
|
)
|
28
|
-
|
18
|
+
internal
|
29
19
|
onlyInitializing
|
30
20
|
{
|
31
|
-
// check/handle access managed
|
32
|
-
if(authority == address(0)) {
|
33
|
-
revert CloneableAuthorityZero();
|
34
|
-
}
|
35
|
-
|
36
21
|
__AccessManaged_init(authority);
|
37
|
-
|
38
|
-
// check/handle registry
|
39
|
-
if (registry.code.length == 0) {
|
40
|
-
revert CloneableRegistryInvalid(registry);
|
41
|
-
}
|
42
|
-
|
43
22
|
_registry = IRegistry(registry);
|
44
|
-
|
45
|
-
emit CloneableInitialized(authority, registry);
|
46
23
|
}
|
47
24
|
|
48
25
|
function getRegistry() external view returns (IRegistry) {
|
@@ -0,0 +1,21 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Blocknumber, BlocknumberLib} from "../../type/Blocknumber.sol";
|
5
|
+
import {NftId} from "../../type/NftId.sol";
|
6
|
+
import {Amount} from "../../type/Amount.sol";
|
7
|
+
import {RequestId, RequestIdLib} from "../../type/RequestId.sol";
|
8
|
+
|
9
|
+
contract ObjectCounter {
|
10
|
+
|
11
|
+
// TODO refactor risk id
|
12
|
+
// mapping(NftId productNftId => uint64 risks) private _riskCounter;
|
13
|
+
|
14
|
+
uint256 private _requestCounter;
|
15
|
+
|
16
|
+
// TODO introduce RequestId (uint64)
|
17
|
+
function _createNextRequestId() internal returns (RequestId requestId) {
|
18
|
+
_requestCounter++;
|
19
|
+
requestId = RequestIdLib.toRequestId(_requestCounter);
|
20
|
+
}
|
21
|
+
}
|
@@ -0,0 +1,111 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
|
+
|
6
|
+
import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PREMIUM, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
|
7
|
+
import {ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../../type/StateId.sol";
|
8
|
+
import {Lifecycle} from "../../shared/Lifecycle.sol";
|
9
|
+
|
10
|
+
contract ObjectLifecycle is
|
11
|
+
Lifecycle,
|
12
|
+
Initializable
|
13
|
+
{
|
14
|
+
function _initializeLifecycle() internal onlyInitializing
|
15
|
+
{
|
16
|
+
_setupLifecycle();
|
17
|
+
}
|
18
|
+
|
19
|
+
function _setupLifecycle()
|
20
|
+
internal
|
21
|
+
override
|
22
|
+
{
|
23
|
+
_setupBundleLifecycle();
|
24
|
+
_setupComponentLifecycle();
|
25
|
+
_setupPolicyLifecycle();
|
26
|
+
_setupPremiumLifecycle();
|
27
|
+
_setupClaimLifecycle();
|
28
|
+
_setupPayoutLifecycle();
|
29
|
+
_setupRiskLifecycle();
|
30
|
+
_setupRequestLifecycle();
|
31
|
+
|
32
|
+
// setup dummy lifecycles to manage with key value store
|
33
|
+
_setUpPoolLifecycle();
|
34
|
+
_setUpProductLifecycle();
|
35
|
+
_setUpDistributionLifecycle();
|
36
|
+
}
|
37
|
+
|
38
|
+
function _setupComponentLifecycle() private {
|
39
|
+
setInitialState(COMPONENT(), ACTIVE());
|
40
|
+
setStateTransition(COMPONENT(), ACTIVE(), PAUSED());
|
41
|
+
setStateTransition(COMPONENT(), PAUSED(), ACTIVE());
|
42
|
+
setStateTransition(COMPONENT(), PAUSED(), ARCHIVED());
|
43
|
+
}
|
44
|
+
|
45
|
+
function _setupBundleLifecycle() private {
|
46
|
+
setInitialState(BUNDLE(), ACTIVE());
|
47
|
+
setStateTransition(BUNDLE(), ACTIVE(), PAUSED());
|
48
|
+
setStateTransition(BUNDLE(), ACTIVE(), CLOSED());
|
49
|
+
setStateTransition(BUNDLE(), PAUSED(), ACTIVE());
|
50
|
+
setStateTransition(BUNDLE(), PAUSED(), CLOSED());
|
51
|
+
}
|
52
|
+
|
53
|
+
function _setupPolicyLifecycle() private {
|
54
|
+
setInitialState(POLICY(), APPLIED());
|
55
|
+
setStateTransition(POLICY(), APPLIED(), REVOKED());
|
56
|
+
setStateTransition(POLICY(), APPLIED(), DECLINED());
|
57
|
+
setStateTransition(POLICY(), APPLIED(), COLLATERALIZED());
|
58
|
+
setStateTransition(POLICY(), COLLATERALIZED(), CLOSED());
|
59
|
+
}
|
60
|
+
|
61
|
+
function _setupPremiumLifecycle() private {
|
62
|
+
setInitialState(PREMIUM(), EXPECTED());
|
63
|
+
setStateTransition(PREMIUM(), EXPECTED(), PAID());
|
64
|
+
}
|
65
|
+
|
66
|
+
function _setupClaimLifecycle() private {
|
67
|
+
setInitialState(CLAIM(), SUBMITTED());
|
68
|
+
setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
|
69
|
+
setStateTransition(CLAIM(), SUBMITTED(), DECLINED());
|
70
|
+
setStateTransition(CLAIM(), CONFIRMED(), CLOSED());
|
71
|
+
}
|
72
|
+
|
73
|
+
function _setupPayoutLifecycle() private {
|
74
|
+
setInitialState(PAYOUT(), EXPECTED());
|
75
|
+
// TODO: add state cancelled
|
76
|
+
setStateTransition(PAYOUT(), EXPECTED(), PAID());
|
77
|
+
}
|
78
|
+
|
79
|
+
function _setupRiskLifecycle() private {
|
80
|
+
setInitialState(RISK(), ACTIVE());
|
81
|
+
setStateTransition(RISK(), ACTIVE(), PAUSED());
|
82
|
+
setStateTransition(RISK(), PAUSED(), ACTIVE());
|
83
|
+
setStateTransition(RISK(), PAUSED(), ARCHIVED());
|
84
|
+
}
|
85
|
+
|
86
|
+
function _setupRequestLifecycle() private {
|
87
|
+
setInitialState(REQUEST(), ACTIVE());
|
88
|
+
setStateTransition(REQUEST(), ACTIVE(), FULFILLED());
|
89
|
+
setStateTransition(REQUEST(), ACTIVE(), FAILED());
|
90
|
+
setStateTransition(REQUEST(), FAILED(), FULFILLED());
|
91
|
+
setStateTransition(REQUEST(), ACTIVE(), CANCELLED());
|
92
|
+
}
|
93
|
+
|
94
|
+
// dummy lifecycle only
|
95
|
+
function _setUpPoolLifecycle() private {
|
96
|
+
setInitialState(POOL(), ACTIVE());
|
97
|
+
}
|
98
|
+
|
99
|
+
// dummy lifecycle only
|
100
|
+
function _setUpProductLifecycle() private {
|
101
|
+
setInitialState(PRODUCT(), ACTIVE());
|
102
|
+
}
|
103
|
+
|
104
|
+
// dummy lifecycles only
|
105
|
+
function _setUpDistributionLifecycle() private {
|
106
|
+
setInitialState(DISTRIBUTION(), ACTIVE());
|
107
|
+
setInitialState(DISTRIBUTOR(), ACTIVE());
|
108
|
+
setInitialState(DISTRIBUTOR_TYPE(), ACTIVE());
|
109
|
+
setInitialState(REFERRAL(), ACTIVE());
|
110
|
+
}
|
111
|
+
}
|