@etherisc/gif-next 0.0.2-cfc7167-648 → 0.0.2-cff7366-494
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 +32 -8
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +105 -65
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -32
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -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 +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +159 -367
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +99 -291
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +227 -290
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -117
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +89 -129
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +101 -31
- 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 +1415 -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 +1965 -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 +1429 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1163 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2267 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +116 -48
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -101
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +141 -141
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +197 -139
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +726 -133
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +118 -260
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +99 -87
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +337 -138
- 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/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +111 -319
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +77 -117
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +87 -279
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +147 -191
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +119 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +106 -298
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +146 -307
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -119
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +48 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +98 -149
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +283 -180
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +106 -309
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +382 -407
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +123 -99
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +119 -165
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +93 -85
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +149 -295
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +282 -229
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +132 -108
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +63 -7
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +161 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +179 -35
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +136 -130
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +281 -323
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +123 -119
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +215 -309
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +117 -117
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +147 -293
- 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 +310 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
- 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 +516 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +296 -143
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +94 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +91 -75
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +131 -223
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +76 -239
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +492 -335
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +143 -117
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
- 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 +66 -77
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +467 -33
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +77 -117
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +87 -279
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
- 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 +47 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +674 -49
- 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 +111 -114
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +63 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +193 -368
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +117 -110
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +95 -79
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +169 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +54 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +32 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +99 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- 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 +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +15 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +83 -58
- package/contracts/authorization/Authorization.sol +111 -40
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -3
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +4 -3
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +12 -23
- package/contracts/distribution/DistributionService.sol +97 -66
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +13 -8
- 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 +65 -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 +38 -34
- package/contracts/instance/IInstance.sol +16 -31
- package/contracts/instance/IInstanceService.sol +7 -29
- package/contracts/instance/Instance.sol +44 -59
- package/contracts/instance/InstanceAdmin.sol +58 -39
- package/contracts/instance/InstanceAuthorizationV3.sol +43 -29
- package/contracts/instance/InstanceReader.sol +190 -19
- package/contracts/instance/InstanceService.sol +61 -137
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/ObjectLifecycle.sol +7 -1
- package/contracts/instance/base/ObjectSet.sol +24 -25
- package/contracts/instance/module/IComponents.sol +10 -6
- package/contracts/instance/module/IPolicy.sol +25 -24
- package/contracts/instance/module/IRisk.sol +1 -0
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +6 -16
- package/contracts/oracle/OracleService.sol +112 -81
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +33 -24
- package/contracts/pool/BasicPoolAuthorization.sol +12 -2
- package/contracts/pool/BundleService.sol +69 -83
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +3 -14
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +48 -42
- package/contracts/pool/Pool.sol +144 -127
- package/contracts/pool/PoolService.sol +277 -189
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +34 -25
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +9 -12
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +312 -115
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +30 -7
- package/contracts/product/IPolicyService.sol +31 -25
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +23 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +399 -261
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +49 -53
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +101 -87
- package/contracts/product/{ProductService.sol → RiskService.sol} +21 -13
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +68 -38
- package/contracts/registry/IRegistry.sol +57 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +350 -201
- package/contracts/registry/RegistryAdmin.sol +140 -54
- package/contracts/registry/RegistryService.sol +35 -46
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +204 -204
- package/contracts/registry/ServiceAuthorizationV3.sol +23 -47
- package/contracts/shared/Component.sol +60 -119
- package/contracts/shared/ComponentService.sol +393 -167
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +224 -0
- package/contracts/shared/IComponent.sol +10 -14
- package/contracts/shared/IComponentService.sol +44 -18
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -28
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +71 -46
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +27 -7
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +19 -11
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +20 -18
- package/contracts/shared/TokenHandler.sol +357 -30
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +11 -5
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +39 -50
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +58 -25
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +18 -11
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +30 -4
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/UFixed.sol +4 -0
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +4 -3
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/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 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.dbg.json +0 -4
- package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.json +0 -42
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/InitializableCustom.sol +0 -177
- package/contracts/shared/TokenTransferLib.sol +0 -60
@@ -2,41 +2,33 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
|
-
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
5
|
|
7
6
|
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
8
7
|
import {Amount} from "../type/Amount.sol";
|
9
8
|
import {BundleSet} from "./BundleSet.sol";
|
9
|
+
import {RiskSet} from "./RiskSet.sol";
|
10
10
|
import {ChainNft} from "../registry/ChainNft.sol";
|
11
11
|
import {NftId} from "../type/NftId.sol";
|
12
12
|
import {RoleId} from "../type/RoleId.sol";
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
16
|
-
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
13
|
+
import {UFixed} from "../type/UFixed.sol";
|
14
|
+
import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
17
15
|
|
18
16
|
import {Service} from "../shared/Service.sol";
|
19
|
-
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
20
|
-
import {IService} from "../shared/IService.sol";
|
21
|
-
|
22
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
23
|
-
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
24
|
-
import {IProductComponent} from "../product/IProductComponent.sol";
|
25
17
|
|
26
18
|
import {IRegistry} from "../registry/IRegistry.sol";
|
27
19
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
28
20
|
import {IStakingService} from "../staking/IStakingService.sol";
|
29
21
|
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
30
22
|
|
23
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
31
24
|
import {Instance} from "./Instance.sol";
|
32
|
-
import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
|
33
25
|
import {IInstance} from "./IInstance.sol";
|
34
26
|
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
35
27
|
import {IInstanceService} from "./IInstanceService.sol";
|
36
28
|
import {InstanceReader} from "./InstanceReader.sol";
|
37
29
|
import {InstanceStore} from "./InstanceStore.sol";
|
38
30
|
import {Seconds} from "../type/Seconds.sol";
|
39
|
-
import {VersionPart
|
31
|
+
import {VersionPart} from "../type/Version.sol";
|
40
32
|
|
41
33
|
|
42
34
|
contract InstanceService is
|
@@ -49,18 +41,20 @@ contract InstanceService is
|
|
49
41
|
|
50
42
|
IRegistryService internal _registryService;
|
51
43
|
IStakingService internal _stakingService;
|
44
|
+
IComponentService internal _componentService;
|
52
45
|
|
53
46
|
address internal _masterAccessManager;
|
54
47
|
address internal _masterInstanceAdmin;
|
55
48
|
address internal _masterInstance;
|
56
49
|
address internal _masterInstanceReader;
|
57
50
|
address internal _masterInstanceBundleSet;
|
51
|
+
address internal _masterInstanceRiskSet;
|
58
52
|
address internal _masterInstanceStore;
|
59
53
|
|
60
54
|
|
61
55
|
modifier onlyInstance() {
|
62
56
|
address instanceAddress = msg.sender;
|
63
|
-
NftId instanceNftId = getRegistry().
|
57
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
64
58
|
if (instanceNftId.eqz()) {
|
65
59
|
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
66
60
|
}
|
@@ -70,7 +64,7 @@ contract InstanceService is
|
|
70
64
|
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
71
65
|
}
|
72
66
|
|
73
|
-
VersionPart instanceVersion = IInstance(instanceAddress).
|
67
|
+
VersionPart instanceVersion = IInstance(instanceAddress).getRelease();
|
74
68
|
if (instanceVersion != getVersion().toMajorPart()) {
|
75
69
|
revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
|
76
70
|
}
|
@@ -97,8 +91,8 @@ contract InstanceService is
|
|
97
91
|
function createInstance()
|
98
92
|
external
|
99
93
|
returns (
|
100
|
-
|
101
|
-
NftId
|
94
|
+
IInstance instance,
|
95
|
+
NftId instanceNftId
|
102
96
|
)
|
103
97
|
{
|
104
98
|
// tx sender will become instance owner
|
@@ -106,24 +100,24 @@ contract InstanceService is
|
|
106
100
|
|
107
101
|
// create instance admin and instance
|
108
102
|
InstanceAdmin instanceAdmin = _createInstanceAdmin();
|
109
|
-
|
103
|
+
instance = _createInstance(instanceAdmin, instanceOwner);
|
110
104
|
|
111
105
|
// register cloned instance with registry
|
112
|
-
|
113
|
-
|
106
|
+
instanceNftId = _registryService.registerInstance(
|
107
|
+
instance, instanceOwner).nftId;
|
114
108
|
|
115
109
|
// register cloned instance as staking target
|
116
110
|
_stakingService.createInstanceTarget(
|
117
|
-
|
111
|
+
instanceNftId,
|
118
112
|
TargetManagerLib.getDefaultLockingPeriod(),
|
119
113
|
TargetManagerLib.getDefaultRewardRate());
|
120
114
|
|
121
115
|
// MUST be set after instance is set up and registered
|
122
|
-
instanceAdmin.initializeInstanceAuthorization(address(
|
116
|
+
instanceAdmin.initializeInstanceAuthorization(address(instance));
|
123
117
|
|
124
118
|
emit LogInstanceCloned(
|
125
|
-
|
126
|
-
address(
|
119
|
+
instanceNftId,
|
120
|
+
address(instance));
|
127
121
|
}
|
128
122
|
|
129
123
|
|
@@ -132,7 +126,7 @@ contract InstanceService is
|
|
132
126
|
virtual
|
133
127
|
onlyInstance()
|
134
128
|
{
|
135
|
-
NftId instanceNftId = getRegistry().
|
129
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
136
130
|
_stakingService.setInstanceLockingPeriod(
|
137
131
|
instanceNftId,
|
138
132
|
stakeLockingPeriod);
|
@@ -144,7 +138,7 @@ contract InstanceService is
|
|
144
138
|
virtual
|
145
139
|
onlyInstance()
|
146
140
|
{
|
147
|
-
NftId instanceNftId = getRegistry().
|
141
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
148
142
|
_stakingService.setInstanceRewardRate(
|
149
143
|
instanceNftId,
|
150
144
|
rewardRate);
|
@@ -156,7 +150,7 @@ contract InstanceService is
|
|
156
150
|
virtual
|
157
151
|
onlyInstance()
|
158
152
|
{
|
159
|
-
NftId instanceNftId = getRegistry().
|
153
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
160
154
|
_stakingService.refillInstanceRewardReserves(
|
161
155
|
instanceNftId,
|
162
156
|
rewardProvider,
|
@@ -170,40 +164,12 @@ contract InstanceService is
|
|
170
164
|
onlyInstance()
|
171
165
|
returns (Amount newBalance)
|
172
166
|
{
|
173
|
-
NftId instanceNftId = getRegistry().
|
167
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
174
168
|
_stakingService.withdrawInstanceRewardReserves(
|
175
169
|
instanceNftId,
|
176
170
|
dipAmount);
|
177
171
|
}
|
178
172
|
|
179
|
-
|
180
|
-
function setComponentLocked(bool locked)
|
181
|
-
external
|
182
|
-
virtual
|
183
|
-
onlyComponent()
|
184
|
-
{
|
185
|
-
// checks
|
186
|
-
address componentAddress = msg.sender;
|
187
|
-
|
188
|
-
if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
|
189
|
-
revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
|
190
|
-
}
|
191
|
-
|
192
|
-
IRegistry registry = getRegistry();
|
193
|
-
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
194
|
-
|
195
|
-
IInstance instance = IInstance(
|
196
|
-
registry.getObjectInfo(
|
197
|
-
instanceNftId).objectAddress);
|
198
|
-
|
199
|
-
// no revert in case already locked
|
200
|
-
// TODO refactor/implement
|
201
|
-
// instance.getInstanceAdmin().setTargetLockedByService(
|
202
|
-
// componentAddress,
|
203
|
-
// locked);
|
204
|
-
}
|
205
|
-
|
206
|
-
|
207
173
|
function getMasterInstanceReader() external view returns (address) {
|
208
174
|
return _masterInstanceReader;
|
209
175
|
}
|
@@ -216,7 +182,7 @@ contract InstanceService is
|
|
216
182
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
217
183
|
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
218
184
|
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
219
|
-
|
185
|
+
if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
|
220
186
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
221
187
|
|
222
188
|
IInstance instance = IInstance(instanceAddress);
|
@@ -225,28 +191,34 @@ contract InstanceService is
|
|
225
191
|
address instanceAdminAddress = address(instanceAdmin);
|
226
192
|
InstanceReader instanceReader = instance.getInstanceReader();
|
227
193
|
address instanceReaderAddress = address(instanceReader);
|
228
|
-
BundleSet
|
229
|
-
address
|
194
|
+
BundleSet bundleSet = instance.getBundleSet();
|
195
|
+
address bundleSetAddress = address(bundleSet);
|
196
|
+
RiskSet riskSet = instance.getRiskSet();
|
197
|
+
address riskSetAddress = address(riskSet);
|
230
198
|
InstanceStore instanceStore = instance.getInstanceStore();
|
231
199
|
address instanceStoreAddress = address(instanceStore);
|
232
200
|
|
233
201
|
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
234
202
|
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
235
203
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
236
|
-
if(
|
204
|
+
if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
205
|
+
if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
|
237
206
|
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
238
207
|
|
239
208
|
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
240
|
-
if(
|
209
|
+
if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
210
|
+
if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
|
241
211
|
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
242
|
-
if(
|
212
|
+
if(bundleSet.getInstance() != instance) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
|
213
|
+
if(riskSet.getInstance() != instance) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
|
243
214
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
244
215
|
|
245
216
|
_masterAccessManager = accessManagerAddress;
|
246
217
|
_masterInstanceAdmin = instanceAdminAddress;
|
247
218
|
_masterInstance = instanceAddress;
|
248
219
|
_masterInstanceReader = instanceReaderAddress;
|
249
|
-
_masterInstanceBundleSet =
|
220
|
+
_masterInstanceBundleSet = bundleSetAddress;
|
221
|
+
_masterInstanceRiskSet = riskSetAddress;
|
250
222
|
_masterInstanceStore = instanceStoreAddress;
|
251
223
|
|
252
224
|
IInstance masterInstance = IInstance(_masterInstance);
|
@@ -268,6 +240,7 @@ contract InstanceService is
|
|
268
240
|
function upgradeInstanceReader(NftId instanceNftId)
|
269
241
|
external
|
270
242
|
onlyInstanceOwner(instanceNftId)
|
243
|
+
onlyNftOfType(instanceNftId, INSTANCE())
|
271
244
|
{
|
272
245
|
IRegistry registry = getRegistry();
|
273
246
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
@@ -278,67 +251,6 @@ contract InstanceService is
|
|
278
251
|
instance.setInstanceReader(upgradedInstanceReaderClone);
|
279
252
|
}
|
280
253
|
|
281
|
-
|
282
|
-
function createGifTarget(
|
283
|
-
NftId instanceNftId,
|
284
|
-
address targetAddress,
|
285
|
-
string memory targetName,
|
286
|
-
bytes4[][] memory selectors,
|
287
|
-
RoleId[] memory roles
|
288
|
-
)
|
289
|
-
external
|
290
|
-
virtual
|
291
|
-
restricted()
|
292
|
-
{
|
293
|
-
_createGifTarget(
|
294
|
-
instanceNftId,
|
295
|
-
targetAddress,
|
296
|
-
targetName,
|
297
|
-
roles,
|
298
|
-
selectors
|
299
|
-
);
|
300
|
-
}
|
301
|
-
|
302
|
-
|
303
|
-
function initializeAuthorization(
|
304
|
-
NftId instanceNftId,
|
305
|
-
IInstanceLinkedComponent component
|
306
|
-
)
|
307
|
-
external
|
308
|
-
virtual
|
309
|
-
restricted()
|
310
|
-
{
|
311
|
-
(IInstance instance, ) = _validateInstanceAndComponent(
|
312
|
-
instanceNftId,
|
313
|
-
address(component));
|
314
|
-
|
315
|
-
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
316
|
-
instanceAdmin.initializeComponentAuthorization(
|
317
|
-
address(component),
|
318
|
-
component.getAuthorization());
|
319
|
-
}
|
320
|
-
|
321
|
-
|
322
|
-
function createComponentTarget(
|
323
|
-
NftId instanceNftId,
|
324
|
-
address targetAddress,
|
325
|
-
string memory targetName,
|
326
|
-
bytes4[][] memory selectors,
|
327
|
-
RoleId[] memory roles
|
328
|
-
)
|
329
|
-
external
|
330
|
-
virtual
|
331
|
-
restricted()
|
332
|
-
{
|
333
|
-
_createGifTarget(
|
334
|
-
instanceNftId,
|
335
|
-
targetAddress,
|
336
|
-
targetName,
|
337
|
-
roles,
|
338
|
-
selectors
|
339
|
-
);
|
340
|
-
}
|
341
|
-
|
342
254
|
/// @dev create new cloned instance admin
|
343
255
|
/// function used to setup a new instance
|
344
256
|
function _createInstanceAdmin()
|
@@ -355,9 +267,11 @@ contract InstanceService is
|
|
355
267
|
clonedAccessManager.initialize(
|
356
268
|
address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
|
357
269
|
|
270
|
+
address authorization = address(
|
271
|
+
InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
|
358
272
|
clonedInstanceAdmin.initialize(
|
359
273
|
clonedAccessManager,
|
360
|
-
|
274
|
+
authorization);
|
361
275
|
}
|
362
276
|
|
363
277
|
|
@@ -369,21 +283,24 @@ contract InstanceService is
|
|
369
283
|
)
|
370
284
|
internal
|
371
285
|
virtual
|
372
|
-
returns (
|
286
|
+
returns (IInstance)
|
373
287
|
{
|
374
288
|
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
375
289
|
BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
|
290
|
+
RiskSet clonedRiskSet = RiskSet(Clones.clone(_masterInstanceRiskSet));
|
376
291
|
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
377
292
|
|
378
293
|
// clone instance
|
379
|
-
clonedInstance = Instance(Clones.clone(_masterInstance));
|
294
|
+
Instance clonedInstance = Instance(Clones.clone(_masterInstance));
|
380
295
|
clonedInstance.initialize(
|
381
296
|
instanceAdmin,
|
382
297
|
clonedInstanceStore,
|
383
298
|
clonedBundleSet,
|
299
|
+
clonedRiskSet,
|
384
300
|
clonedInstanceReader,
|
385
301
|
getRegistry(),
|
386
302
|
instanceOwner);
|
303
|
+
return clonedInstance;
|
387
304
|
}
|
388
305
|
|
389
306
|
|
@@ -422,21 +339,21 @@ contract InstanceService is
|
|
422
339
|
bytes memory data
|
423
340
|
)
|
424
341
|
internal
|
425
|
-
initializer
|
426
342
|
virtual override
|
343
|
+
initializer()
|
427
344
|
{
|
428
345
|
(
|
429
|
-
address registryAddress
|
430
|
-
//address managerAddress
|
346
|
+
address registryAddress,
|
431
347
|
address authority
|
432
|
-
) = abi.decode(data, (address, address
|
348
|
+
) = abi.decode(data, (address, address));
|
433
349
|
|
434
|
-
|
350
|
+
_initializeService(registryAddress, authority, owner);
|
435
351
|
|
436
352
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
437
353
|
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
354
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
438
355
|
|
439
|
-
|
356
|
+
_registerInterface(type(IInstanceService).interfaceId);
|
440
357
|
}
|
441
358
|
|
442
359
|
|
@@ -451,13 +368,20 @@ contract InstanceService is
|
|
451
368
|
revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
|
452
369
|
}
|
453
370
|
|
454
|
-
|
455
|
-
|
456
|
-
|
371
|
+
if (registry.getNftIdForAddress(componentAddress).gtz()) {
|
372
|
+
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
|
373
|
+
|
374
|
+
if(componentInfo.parentNftId != instanceNftId) {
|
375
|
+
revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
|
376
|
+
}
|
377
|
+
|
378
|
+
componentNftId = componentInfo.nftId;
|
379
|
+
} else {
|
380
|
+
|
457
381
|
}
|
458
382
|
|
459
383
|
instance = Instance(instanceInfo.objectAddress);
|
460
|
-
|
384
|
+
|
461
385
|
}
|
462
386
|
|
463
387
|
// From IService
|
@@ -12,16 +12,15 @@ contract InstanceServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with instance service implementation
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
|
-
ProxyManager(registryAddress)
|
19
18
|
{
|
20
|
-
InstanceService
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
address(
|
19
|
+
InstanceService svc = new InstanceService{salt: salt}();
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
|
+
address(svc),
|
25
24
|
data,
|
26
25
|
salt);
|
27
26
|
|
@@ -7,7 +7,7 @@ import {Amount} from "../type/Amount.sol";
|
|
7
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, POLICY, POOL, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
|
10
|
+
import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
|
11
11
|
import {RequestId} from "../type/RequestId.sol";
|
12
12
|
import {RiskId} from "../type/RiskId.sol";
|
13
13
|
import {StateId} from "../type/StateId.sol";
|
@@ -195,6 +195,16 @@ contract InstanceStore is
|
|
195
195
|
_updateState(_toNftKey32(policyNftId, POLICY()), newState);
|
196
196
|
}
|
197
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);
|
206
|
+
}
|
207
|
+
|
198
208
|
//--- Claim -------------------------------------------------------------//
|
199
209
|
function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
|
200
210
|
_create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
|
@@ -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
|
+
}
|
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
5
|
|
6
|
-
import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
|
6
|
+
import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PREMIUM, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
|
7
7
|
import {ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../../type/StateId.sol";
|
8
8
|
import {Lifecycle} from "../../shared/Lifecycle.sol";
|
9
9
|
|
@@ -23,6 +23,7 @@ contract ObjectLifecycle is
|
|
23
23
|
_setupBundleLifecycle();
|
24
24
|
_setupComponentLifecycle();
|
25
25
|
_setupPolicyLifecycle();
|
26
|
+
_setupPremiumLifecycle();
|
26
27
|
_setupClaimLifecycle();
|
27
28
|
_setupPayoutLifecycle();
|
28
29
|
_setupRiskLifecycle();
|
@@ -57,6 +58,11 @@ contract ObjectLifecycle is
|
|
57
58
|
setStateTransition(POLICY(), COLLATERALIZED(), CLOSED());
|
58
59
|
}
|
59
60
|
|
61
|
+
function _setupPremiumLifecycle() private {
|
62
|
+
setInitialState(PREMIUM(), EXPECTED());
|
63
|
+
setStateTransition(PREMIUM(), EXPECTED(), PAID());
|
64
|
+
}
|
65
|
+
|
60
66
|
function _setupClaimLifecycle() private {
|
61
67
|
setInitialState(CLAIM(), SUBMITTED());
|
62
68
|
setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
|