@etherisc/gif-next 0.0.2-683d8b2-607 → 0.0.2-684bde0-724
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 +100 -9
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +673 -262
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +456 -24
- 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 +549 -209
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +212 -473
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +139 -381
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +772 -316
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +241 -117
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +135 -187
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +579 -137
- 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 +1480 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2045 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -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 +1423 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2471 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +560 -66
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +319 -57
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +568 -166
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1034 -311
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +369 -68
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1685 -774
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +332 -227
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +142 -104
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +921 -728
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +152 -350
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +429 -37
- 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 +129 -129
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +128 -318
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +176 -96
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +194 -421
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +568 -248
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +219 -103
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +374 -36
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +158 -212
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +711 -340
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +148 -392
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +546 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +925 -545
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +229 -105
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +158 -98
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +287 -427
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +472 -235
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +194 -122
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +348 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +417 -101
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +272 -222
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +196 -163
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +532 -311
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +195 -107
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +249 -329
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +164 -136
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +279 -419
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +780 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +21 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +364 -42
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +471 -112
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +749 -455
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +140 -88
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- 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 +491 -242
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +86 -277
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +590 -542
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +189 -119
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -93
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +535 -240
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +118 -129
- 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 +35 -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 +167 -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 +84 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +117 -318
- 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 +41 -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 +141 -97
- 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 +86 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +341 -133
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +184 -23
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +468 -419
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +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 +180 -99
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +91 -67
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +253 -171
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +157 -93
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +209 -149
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -49
- 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 +63 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -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 +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
- 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 +33 -31
- 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 +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +69 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +109 -35
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +117 -78
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +456 -266
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +159 -208
- package/contracts/authorization/IAccess.sol +25 -6
- package/contracts/authorization/IAccessAdmin.sol +87 -79
- package/contracts/authorization/IAuthorization.sol +9 -36
- package/contracts/authorization/IServiceAuthorization.sol +57 -17
- package/contracts/authorization/ServiceAuthorization.sol +254 -24
- package/contracts/distribution/BasicDistribution.sol +20 -28
- package/contracts/distribution/BasicDistributionAuthorization.sol +34 -10
- package/contracts/distribution/Distribution.sol +46 -82
- package/contracts/distribution/DistributionService.sol +276 -116
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +11 -14
- package/contracts/distribution/IDistributionService.sol +56 -26
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +385 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +101 -42
- package/contracts/instance/IInstanceService.sol +52 -31
- package/contracts/instance/Instance.sol +189 -97
- package/contracts/instance/InstanceAdmin.sol +275 -158
- package/contracts/instance/InstanceAuthorizationV3.sol +120 -56
- package/contracts/instance/InstanceReader.sol +478 -251
- package/contracts/instance/InstanceService.sol +298 -229
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +24 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +3 -5
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +11 -4
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +30 -20
- package/contracts/instance/module/IDistribution.sol +21 -9
- package/contracts/instance/module/IPolicy.sol +50 -29
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +1 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +21 -24
- package/contracts/oracle/OracleService.sol +117 -85
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +37 -28
- package/contracts/pool/BasicPoolAuthorization.sol +42 -9
- package/contracts/pool/BundleService.sol +213 -91
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +40 -25
- package/contracts/pool/IPoolComponent.sol +20 -10
- package/contracts/pool/IPoolService.sol +97 -77
- package/contracts/pool/Pool.sol +145 -113
- package/contracts/pool/PoolLib.sol +359 -0
- package/contracts/pool/PoolService.sol +413 -235
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +143 -46
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +12 -45
- package/contracts/product/BasicProductAuthorization.sol +33 -10
- package/contracts/product/ClaimService.sol +384 -159
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +29 -3
- package/contracts/product/IClaimService.sol +44 -8
- package/contracts/product/IPolicyService.sol +61 -37
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +28 -5
- package/contracts/product/IRiskService.sol +37 -0
- package/contracts/product/PolicyService.sol +443 -273
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +90 -84
- package/contracts/product/PricingServiceManager.sol +4 -4
- package/contracts/product/Product.sol +175 -95
- package/contracts/product/RiskService.sol +163 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +49 -31
- package/contracts/registry/IRegistry.sol +69 -27
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +348 -177
- package/contracts/registry/RegistryAdmin.sol +100 -357
- package/contracts/registry/RegistryAuthorization.sol +284 -0
- package/contracts/registry/RegistryService.sol +38 -49
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +262 -275
- package/contracts/registry/ServiceAuthorizationV3.sol +202 -57
- package/contracts/registry/TokenRegistry.sol +12 -13
- package/contracts/shared/Component.sol +65 -136
- package/contracts/shared/ComponentService.sol +441 -343
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ContractLib.sol +311 -0
- package/contracts/shared/IComponent.sol +6 -18
- package/contracts/shared/IComponentService.sol +50 -41
- package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +4 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +22 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
- package/contracts/shared/InstanceLinkedComponent.sol +82 -39
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +33 -11
- package/contracts/shared/PolicyHolder.sol +20 -59
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +20 -35
- package/contracts/shared/TokenHandler.sol +310 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +48 -20
- package/contracts/staking/IStakingService.sol +21 -11
- package/contracts/staking/Staking.sol +203 -108
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +40 -24
- package/contracts/staking/StakingService.sol +96 -39
- package/contracts/staking/StakingServiceManager.sol +6 -5
- package/contracts/staking/StakingStore.sol +3 -2
- package/contracts/staking/TargetManagerLib.sol +8 -4
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +8 -8
- 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 +73 -37
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +61 -55
- package/contracts/type/Seconds.sol +25 -1
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +56 -126
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +93 -45
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
- package/contracts/upgradeability/Versionable.sol +8 -5
- package/package.json +5 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
- 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/registry/GlobalRegistry.sol/GlobalRegistry.dbg.json +0 -4
- package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.json +0 -1487
- package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.dbg.json +0 -4
- package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.json +0 -1876
- package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.dbg.json +0 -4
- package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.json +0 -974
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- 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/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/MainnetContract.sol/MainnetContract.dbg.json +0 -4
- package/artifacts/contracts/shared/MainnetContract.sol/MainnetContract.json +0 -34
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/IProductService.sol +0 -33
- package/contracts/product/ProductService.sol +0 -99
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/registry/GlobalRegistry.sol +0 -89
- package/contracts/registry/GlobalRegistryAdmin.sol +0 -38
- package/contracts/registry/IGlobalRegistry.sol +0 -17
- package/contracts/shared/ComponentVerifyingService.sol +0 -117
- package/contracts/shared/InitializableCustom.sol +0 -177
- package/contracts/shared/MainnetContract.sol +0 -15
|
@@ -1,37 +1,30 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
pragma solidity ^0.8.20;
|
|
3
3
|
|
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
5
|
-
|
|
6
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
|
7
5
|
import {ClaimId} from "../type/ClaimId.sol";
|
|
8
|
-
import {
|
|
9
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
|
10
|
-
import {IRisk} from "../instance/module/IRisk.sol";
|
|
6
|
+
import {Fee} from "../type/Fee.sol";
|
|
11
7
|
import {IApplicationService} from "./IApplicationService.sol";
|
|
12
8
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
|
13
9
|
import {IComponentService} from "../shared/IComponentService.sol";
|
|
10
|
+
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
|
14
11
|
import {IPolicyService} from "./IPolicyService.sol";
|
|
15
|
-
import {
|
|
12
|
+
import {IRiskService} from "./IRiskService.sol";
|
|
16
13
|
import {IClaimService} from "./IClaimService.sol";
|
|
17
14
|
import {IPricingService} from "./IPricingService.sol";
|
|
18
15
|
import {IProductComponent} from "./IProductComponent.sol";
|
|
19
|
-
import {NftId
|
|
16
|
+
import {NftId} from "../type/NftId.sol";
|
|
17
|
+
import {COMPONENT, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
|
20
18
|
import {PayoutId} from "../type/PayoutId.sol";
|
|
21
|
-
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
|
19
|
+
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE, RISK } from "../type/ObjectType.sol";
|
|
22
20
|
import {ReferralId} from "../type/Referral.sol";
|
|
23
|
-
import {RiskId
|
|
21
|
+
import {RiskId} from "../type/RiskId.sol";
|
|
24
22
|
import {Seconds} from "../type/Seconds.sol";
|
|
25
23
|
import {StateId} from "../type/StateId.sol";
|
|
26
24
|
import {Timestamp} from "../type/Timestamp.sol";
|
|
27
25
|
|
|
28
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
29
|
-
|
|
30
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
|
31
26
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
|
32
27
|
import {IComponents} from "../instance/module/IComponents.sol";
|
|
33
|
-
import {Pool} from "../pool/Pool.sol";
|
|
34
|
-
import {Distribution} from "../distribution/Distribution.sol";
|
|
35
28
|
|
|
36
29
|
abstract contract Product is
|
|
37
30
|
InstanceLinkedComponent,
|
|
@@ -41,16 +34,39 @@ abstract contract Product is
|
|
|
41
34
|
bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
|
|
42
35
|
|
|
43
36
|
struct ProductStorage {
|
|
44
|
-
|
|
37
|
+
IComponents.ProductInfo _productInfo;
|
|
38
|
+
IComponents.FeeInfo _feeInfo;
|
|
39
|
+
IComponentService _componentService;
|
|
40
|
+
IRiskService _riskService;
|
|
45
41
|
IApplicationService _applicationService;
|
|
46
42
|
IPolicyService _policyService;
|
|
47
43
|
IClaimService _claimService;
|
|
48
44
|
IPricingService _pricingService;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
function registerComponent(address component)
|
|
49
|
+
external
|
|
50
|
+
virtual
|
|
51
|
+
restricted()
|
|
52
|
+
onlyOwner()
|
|
53
|
+
returns (NftId componentNftId)
|
|
54
|
+
{
|
|
55
|
+
return _getProductStorage()._componentService.registerComponent(component);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
function processFundedClaim(
|
|
60
|
+
NftId policyNftId,
|
|
61
|
+
ClaimId claimId,
|
|
62
|
+
Amount availableAmount
|
|
63
|
+
)
|
|
64
|
+
external
|
|
65
|
+
virtual
|
|
66
|
+
restricted() // pool service role
|
|
67
|
+
onlyNftOfType(policyNftId, POLICY())
|
|
68
|
+
{
|
|
69
|
+
// default implementation does nothing
|
|
54
70
|
}
|
|
55
71
|
|
|
56
72
|
|
|
@@ -62,12 +78,14 @@ abstract contract Product is
|
|
|
62
78
|
NftId bundleNftId,
|
|
63
79
|
ReferralId referralId
|
|
64
80
|
)
|
|
65
|
-
|
|
81
|
+
public
|
|
66
82
|
view
|
|
83
|
+
virtual
|
|
67
84
|
override
|
|
85
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
|
68
86
|
returns (Amount premiumAmount)
|
|
69
87
|
{
|
|
70
|
-
IPolicy.
|
|
88
|
+
IPolicy.PremiumInfo memory premium = _getProductStorage()._pricingService.calculatePremium(
|
|
71
89
|
getNftId(),
|
|
72
90
|
riskId,
|
|
73
91
|
sumInsuredAmount,
|
|
@@ -77,14 +95,14 @@ abstract contract Product is
|
|
|
77
95
|
referralId
|
|
78
96
|
);
|
|
79
97
|
|
|
80
|
-
return
|
|
98
|
+
return premium.premiumAmount;
|
|
81
99
|
}
|
|
82
100
|
|
|
83
101
|
function calculateNetPremium(
|
|
84
102
|
Amount sumInsuredAmount,
|
|
85
|
-
RiskId
|
|
86
|
-
Seconds
|
|
87
|
-
bytes memory
|
|
103
|
+
RiskId,
|
|
104
|
+
Seconds,
|
|
105
|
+
bytes memory
|
|
88
106
|
)
|
|
89
107
|
external
|
|
90
108
|
view
|
|
@@ -96,56 +114,33 @@ abstract contract Product is
|
|
|
96
114
|
}
|
|
97
115
|
|
|
98
116
|
|
|
99
|
-
function register()
|
|
100
|
-
external
|
|
101
|
-
virtual
|
|
102
|
-
onlyOwner()
|
|
103
|
-
{
|
|
104
|
-
_getProductStorage()._componentService.registerProduct();
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
|
|
108
117
|
function getInitialProductInfo()
|
|
109
118
|
public
|
|
110
119
|
virtual
|
|
111
120
|
view
|
|
112
121
|
returns (IComponents.ProductInfo memory poolInfo)
|
|
113
122
|
{
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
return IComponents.ProductInfo({
|
|
117
|
-
distributionNftId: $._distributionNftId,
|
|
118
|
-
poolNftId: $._poolNftId,
|
|
119
|
-
productFee: FeeLib.zero(),
|
|
120
|
-
processingFee: FeeLib.zero(),
|
|
121
|
-
distributionFee: FeeLib.zero(),
|
|
122
|
-
minDistributionOwnerFee: FeeLib.zero(),
|
|
123
|
-
poolFee: FeeLib.zero(),
|
|
124
|
-
stakingFee: FeeLib.zero(),
|
|
125
|
-
performanceFee: FeeLib.zero()
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
function getPoolNftId() external view override returns (NftId poolNftId) {
|
|
130
|
-
return getRegistry().getNftId(address(_getProductStorage()._pool));
|
|
123
|
+
return _getProductStorage()._productInfo;
|
|
131
124
|
}
|
|
132
125
|
|
|
133
|
-
function
|
|
134
|
-
|
|
126
|
+
function getInitialFeeInfo()
|
|
127
|
+
public
|
|
128
|
+
virtual
|
|
129
|
+
view
|
|
130
|
+
returns (IComponents.FeeInfo memory feeInfo)
|
|
131
|
+
{
|
|
132
|
+
return _getProductStorage()._feeInfo;
|
|
135
133
|
}
|
|
136
134
|
|
|
137
135
|
|
|
138
136
|
function _initializeProduct(
|
|
139
137
|
address registry,
|
|
140
138
|
NftId instanceNftId,
|
|
139
|
+
string memory name,
|
|
140
|
+
IComponents.ProductInfo memory productInfo,
|
|
141
|
+
IComponents.FeeInfo memory feeInfo,
|
|
141
142
|
IAuthorization authorization,
|
|
142
143
|
address initialOwner,
|
|
143
|
-
string memory name,
|
|
144
|
-
address token,
|
|
145
|
-
bool isInterceptor,
|
|
146
|
-
address pool,
|
|
147
|
-
address distribution,
|
|
148
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
|
149
144
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
|
150
145
|
)
|
|
151
146
|
internal
|
|
@@ -156,29 +151,23 @@ abstract contract Product is
|
|
|
156
151
|
registry,
|
|
157
152
|
instanceNftId,
|
|
158
153
|
name,
|
|
159
|
-
token,
|
|
160
154
|
PRODUCT(),
|
|
161
155
|
authorization,
|
|
162
|
-
|
|
156
|
+
productInfo.isInterceptingPolicyTransfers,
|
|
163
157
|
initialOwner,
|
|
164
|
-
registryData,
|
|
165
158
|
componentData);
|
|
166
159
|
|
|
167
160
|
ProductStorage storage $ = _getProductStorage();
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
$.
|
|
161
|
+
$._productInfo = productInfo;
|
|
162
|
+
$._feeInfo = feeInfo;
|
|
163
|
+
$._riskService = IRiskService(_getServiceAddress(RISK()));
|
|
171
164
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
|
172
165
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
|
173
166
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
|
174
167
|
$._pricingService = IPricingService(_getServiceAddress(PRICE()));
|
|
175
168
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
|
176
|
-
$._pool = Pool(pool);
|
|
177
|
-
$._distribution = Distribution(distribution);
|
|
178
|
-
$._poolNftId = getRegistry().getNftId(pool);
|
|
179
|
-
$._distributionNftId = getRegistry().getNftId(distribution);
|
|
180
169
|
|
|
181
|
-
|
|
170
|
+
_registerInterface(type(IProductComponent).interfaceId);
|
|
182
171
|
}
|
|
183
172
|
|
|
184
173
|
|
|
@@ -194,10 +183,14 @@ abstract contract Product is
|
|
|
194
183
|
|
|
195
184
|
|
|
196
185
|
function _createRisk(
|
|
197
|
-
|
|
186
|
+
bytes32 id,
|
|
198
187
|
bytes memory data
|
|
199
|
-
)
|
|
200
|
-
|
|
188
|
+
)
|
|
189
|
+
internal
|
|
190
|
+
virtual
|
|
191
|
+
returns (RiskId riskId)
|
|
192
|
+
{
|
|
193
|
+
return _getProductStorage()._riskService.createRisk(
|
|
201
194
|
id,
|
|
202
195
|
data
|
|
203
196
|
);
|
|
@@ -206,8 +199,11 @@ abstract contract Product is
|
|
|
206
199
|
function _updateRisk(
|
|
207
200
|
RiskId id,
|
|
208
201
|
bytes memory data
|
|
209
|
-
)
|
|
210
|
-
|
|
202
|
+
)
|
|
203
|
+
internal
|
|
204
|
+
virtual
|
|
205
|
+
{
|
|
206
|
+
_getProductStorage()._riskService.updateRisk(
|
|
211
207
|
id,
|
|
212
208
|
data
|
|
213
209
|
);
|
|
@@ -216,35 +212,36 @@ abstract contract Product is
|
|
|
216
212
|
function _updateRiskState(
|
|
217
213
|
RiskId id,
|
|
218
214
|
StateId state
|
|
219
|
-
)
|
|
220
|
-
|
|
215
|
+
)
|
|
216
|
+
internal
|
|
217
|
+
virtual
|
|
218
|
+
{
|
|
219
|
+
_getProductStorage()._riskService.updateRiskState(
|
|
221
220
|
id,
|
|
222
221
|
state
|
|
223
222
|
);
|
|
224
223
|
}
|
|
225
224
|
|
|
226
225
|
|
|
227
|
-
function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
|
|
228
|
-
return getInstance().getInstanceReader().getRiskInfo(id);
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
|
|
232
226
|
function _createApplication(
|
|
233
227
|
address applicationOwner,
|
|
234
228
|
RiskId riskId,
|
|
235
229
|
Amount sumInsuredAmount,
|
|
230
|
+
Amount premiumAmount,
|
|
236
231
|
Seconds lifetime,
|
|
237
232
|
NftId bundleNftId,
|
|
238
233
|
ReferralId referralId,
|
|
239
234
|
bytes memory applicationData
|
|
240
235
|
)
|
|
241
236
|
internal
|
|
237
|
+
virtual
|
|
242
238
|
returns (NftId applicationNftId)
|
|
243
239
|
{
|
|
244
240
|
return _getProductStorage()._applicationService.create(
|
|
245
241
|
applicationOwner,
|
|
246
242
|
riskId,
|
|
247
243
|
sumInsuredAmount,
|
|
244
|
+
premiumAmount,
|
|
248
245
|
lifetime,
|
|
249
246
|
bundleNftId,
|
|
250
247
|
referralId,
|
|
@@ -252,16 +249,54 @@ abstract contract Product is
|
|
|
252
249
|
);
|
|
253
250
|
}
|
|
254
251
|
|
|
255
|
-
function
|
|
252
|
+
function _createPolicy(
|
|
253
|
+
NftId applicationNftId,
|
|
254
|
+
Timestamp activateAt,
|
|
255
|
+
Amount maxPremiumAmount
|
|
256
|
+
)
|
|
257
|
+
internal
|
|
258
|
+
virtual
|
|
259
|
+
returns (Amount premiumAmount)
|
|
260
|
+
{
|
|
261
|
+
premiumAmount = _getProductStorage()._policyService.createPolicy(
|
|
262
|
+
applicationNftId,
|
|
263
|
+
activateAt,
|
|
264
|
+
maxPremiumAmount);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
function _decline(
|
|
268
|
+
NftId policyNftId
|
|
269
|
+
)
|
|
270
|
+
internal
|
|
271
|
+
virtual
|
|
272
|
+
{
|
|
273
|
+
_getProductStorage()._policyService.decline(
|
|
274
|
+
policyNftId);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
function _expire(
|
|
278
|
+
NftId policyNftId,
|
|
279
|
+
Timestamp expireAt
|
|
280
|
+
)
|
|
281
|
+
internal
|
|
282
|
+
virtual
|
|
283
|
+
returns (Timestamp expiredAt)
|
|
284
|
+
{
|
|
285
|
+
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/// @dev adjust the activation date of the policy.
|
|
289
|
+
/// The policy must already have an activation date set.
|
|
290
|
+
/// Allowed values are from the current blocktime to the expiration date of the policy.
|
|
291
|
+
function _adjustActivation(
|
|
256
292
|
NftId policyNftId,
|
|
257
|
-
bool requirePremiumPayment,
|
|
258
293
|
Timestamp activateAt
|
|
259
294
|
)
|
|
260
295
|
internal
|
|
296
|
+
virtual
|
|
261
297
|
{
|
|
262
|
-
_getProductStorage()._policyService.
|
|
298
|
+
_getProductStorage()._policyService.adjustActivation(
|
|
263
299
|
policyNftId,
|
|
264
|
-
requirePremiumPayment,
|
|
265
300
|
activateAt);
|
|
266
301
|
}
|
|
267
302
|
|
|
@@ -270,6 +305,7 @@ abstract contract Product is
|
|
|
270
305
|
Timestamp activateAt
|
|
271
306
|
)
|
|
272
307
|
internal
|
|
308
|
+
virtual
|
|
273
309
|
{
|
|
274
310
|
_getProductStorage()._policyService.collectPremium(
|
|
275
311
|
policyNftId,
|
|
@@ -281,6 +317,7 @@ abstract contract Product is
|
|
|
281
317
|
Timestamp activateAt
|
|
282
318
|
)
|
|
283
319
|
internal
|
|
320
|
+
virtual
|
|
284
321
|
{
|
|
285
322
|
_getProductStorage()._policyService.activate(
|
|
286
323
|
policyNftId,
|
|
@@ -291,6 +328,7 @@ abstract contract Product is
|
|
|
291
328
|
NftId policyNftId
|
|
292
329
|
)
|
|
293
330
|
internal
|
|
331
|
+
virtual
|
|
294
332
|
{
|
|
295
333
|
_getProductStorage()._policyService.close(
|
|
296
334
|
policyNftId);
|
|
@@ -302,6 +340,7 @@ abstract contract Product is
|
|
|
302
340
|
bytes memory claimData
|
|
303
341
|
)
|
|
304
342
|
internal
|
|
343
|
+
virtual
|
|
305
344
|
returns(ClaimId)
|
|
306
345
|
{
|
|
307
346
|
return _getProductStorage()._claimService.submit(
|
|
@@ -310,6 +349,18 @@ abstract contract Product is
|
|
|
310
349
|
claimData);
|
|
311
350
|
}
|
|
312
351
|
|
|
352
|
+
function _revokeClaim(
|
|
353
|
+
NftId policyNftId,
|
|
354
|
+
ClaimId claimId
|
|
355
|
+
)
|
|
356
|
+
internal
|
|
357
|
+
virtual
|
|
358
|
+
{
|
|
359
|
+
_getProductStorage()._claimService.revoke(
|
|
360
|
+
policyNftId,
|
|
361
|
+
claimId);
|
|
362
|
+
}
|
|
363
|
+
|
|
313
364
|
function _confirmClaim(
|
|
314
365
|
NftId policyNftId,
|
|
315
366
|
ClaimId claimId,
|
|
@@ -317,6 +368,7 @@ abstract contract Product is
|
|
|
317
368
|
bytes memory data
|
|
318
369
|
)
|
|
319
370
|
internal
|
|
371
|
+
virtual
|
|
320
372
|
{
|
|
321
373
|
_getProductStorage()._claimService.confirm(
|
|
322
374
|
policyNftId,
|
|
@@ -331,6 +383,7 @@ abstract contract Product is
|
|
|
331
383
|
bytes memory data
|
|
332
384
|
)
|
|
333
385
|
internal
|
|
386
|
+
virtual
|
|
334
387
|
{
|
|
335
388
|
_getProductStorage()._claimService.decline(
|
|
336
389
|
policyNftId,
|
|
@@ -343,6 +396,7 @@ abstract contract Product is
|
|
|
343
396
|
ClaimId claimId
|
|
344
397
|
)
|
|
345
398
|
internal
|
|
399
|
+
virtual
|
|
346
400
|
{
|
|
347
401
|
_getProductStorage()._claimService.close(
|
|
348
402
|
policyNftId,
|
|
@@ -356,6 +410,7 @@ abstract contract Product is
|
|
|
356
410
|
bytes memory data
|
|
357
411
|
)
|
|
358
412
|
internal
|
|
413
|
+
virtual
|
|
359
414
|
returns (PayoutId)
|
|
360
415
|
{
|
|
361
416
|
return _getProductStorage()._claimService.createPayout(
|
|
@@ -365,28 +420,53 @@ abstract contract Product is
|
|
|
365
420
|
data);
|
|
366
421
|
}
|
|
367
422
|
|
|
423
|
+
function _createPayoutForBeneficiary(
|
|
424
|
+
NftId policyNftId,
|
|
425
|
+
ClaimId claimId,
|
|
426
|
+
Amount amount,
|
|
427
|
+
address beneficiary,
|
|
428
|
+
bytes memory data
|
|
429
|
+
)
|
|
430
|
+
internal
|
|
431
|
+
virtual
|
|
432
|
+
returns (PayoutId)
|
|
433
|
+
{
|
|
434
|
+
return _getProductStorage()._claimService.createPayoutForBeneficiary(
|
|
435
|
+
policyNftId,
|
|
436
|
+
claimId,
|
|
437
|
+
amount,
|
|
438
|
+
beneficiary,
|
|
439
|
+
data);
|
|
440
|
+
}
|
|
441
|
+
|
|
368
442
|
function _processPayout(
|
|
369
443
|
NftId policyNftId,
|
|
370
444
|
PayoutId payoutId
|
|
371
445
|
)
|
|
372
446
|
internal
|
|
447
|
+
virtual
|
|
448
|
+
returns (Amount netPayoutAmount, Amount processingFeeAmount)
|
|
373
449
|
{
|
|
374
|
-
_getProductStorage()._claimService.processPayout(
|
|
450
|
+
(netPayoutAmount, processingFeeAmount) = _getProductStorage()._claimService.processPayout(
|
|
375
451
|
policyNftId,
|
|
376
452
|
payoutId);
|
|
377
453
|
}
|
|
378
454
|
|
|
379
|
-
function
|
|
380
|
-
|
|
455
|
+
function _cancelPayout(
|
|
456
|
+
NftId policyNftId,
|
|
457
|
+
PayoutId payoutId
|
|
458
|
+
)
|
|
459
|
+
internal
|
|
460
|
+
virtual
|
|
461
|
+
{
|
|
462
|
+
_getProductStorage()._claimService.cancelPayout(
|
|
463
|
+
policyNftId,
|
|
464
|
+
payoutId);
|
|
381
465
|
}
|
|
382
466
|
|
|
383
|
-
function _getProductStorage()
|
|
467
|
+
function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
|
|
384
468
|
assembly {
|
|
385
469
|
$.slot := PRODUCT_STORAGE_LOCATION_V1
|
|
386
470
|
}
|
|
387
471
|
}
|
|
388
|
-
|
|
389
|
-
function _getProductService() internal view returns (IProductService) {
|
|
390
|
-
return _getProductStorage()._productService;
|
|
391
|
-
}
|
|
392
472
|
}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
import {IInstance} from "../instance/IInstance.sol";
|
|
5
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
|
6
|
+
import {IRisk} from "../instance/module/IRisk.sol";
|
|
7
|
+
import {IRiskService} from "./IRiskService.sol";
|
|
8
|
+
|
|
9
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
|
10
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
|
11
|
+
import {ObjectType, COMPONENT, PRODUCT, RISK} from "../type/ObjectType.sol";
|
|
12
|
+
import {ACTIVE, PAUSED, KEEP_STATE} from "../type/StateId.sol";
|
|
13
|
+
import {NftId} from "../type/NftId.sol";
|
|
14
|
+
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
|
15
|
+
import {StateId} from "../type/StateId.sol";
|
|
16
|
+
import {RiskSet} from "../instance/RiskSet.sol";
|
|
17
|
+
import {Service} from "../shared/Service.sol";
|
|
18
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
|
19
|
+
|
|
20
|
+
contract RiskService is
|
|
21
|
+
Service,
|
|
22
|
+
IRiskService
|
|
23
|
+
{
|
|
24
|
+
|
|
25
|
+
function _initialize(
|
|
26
|
+
address owner,
|
|
27
|
+
bytes memory data
|
|
28
|
+
)
|
|
29
|
+
internal
|
|
30
|
+
initializer
|
|
31
|
+
virtual override
|
|
32
|
+
{
|
|
33
|
+
(
|
|
34
|
+
address authority,
|
|
35
|
+
address registry
|
|
36
|
+
) = abi.decode(data, (address, address));
|
|
37
|
+
|
|
38
|
+
__Service_init(authority, registry, owner);
|
|
39
|
+
_registerInterface(type(IRiskService).interfaceId);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/// @inheritdoc IRiskService
|
|
43
|
+
function createRisk(
|
|
44
|
+
bytes32 id,
|
|
45
|
+
bytes memory data
|
|
46
|
+
)
|
|
47
|
+
external
|
|
48
|
+
virtual
|
|
49
|
+
restricted()
|
|
50
|
+
returns (RiskId riskId)
|
|
51
|
+
{
|
|
52
|
+
// checks
|
|
53
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
|
54
|
+
|
|
55
|
+
// effects
|
|
56
|
+
riskId = RiskIdLib.toRiskId(productNftId, id);
|
|
57
|
+
IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo({
|
|
58
|
+
productNftId: productNftId,
|
|
59
|
+
createdAt: TimestampLib.blockTimestamp(),
|
|
60
|
+
data: data});
|
|
61
|
+
|
|
62
|
+
instance.getInstanceStore().createRisk(
|
|
63
|
+
riskId,
|
|
64
|
+
riskInfo
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
// add risk to RiskSet
|
|
68
|
+
RiskSet riskSet = instance.getRiskSet();
|
|
69
|
+
riskSet.add(riskId);
|
|
70
|
+
|
|
71
|
+
emit LogRiskServiceRiskCreated(productNftId, riskId);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
function updateRisk(
|
|
76
|
+
RiskId riskId,
|
|
77
|
+
bytes memory data
|
|
78
|
+
)
|
|
79
|
+
external
|
|
80
|
+
virtual
|
|
81
|
+
restricted()
|
|
82
|
+
{
|
|
83
|
+
// checks
|
|
84
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
|
85
|
+
|
|
86
|
+
// effects
|
|
87
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
|
88
|
+
IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
|
|
89
|
+
|
|
90
|
+
if (riskInfo.productNftId != productNftId) {
|
|
91
|
+
revert ErrorRiskServiceRiskProductMismatch(riskId, riskInfo.productNftId, productNftId);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
riskInfo.data = data;
|
|
95
|
+
instance.getInstanceStore().updateRisk(riskId, riskInfo, KEEP_STATE());
|
|
96
|
+
|
|
97
|
+
emit LogRiskServiceRiskUpdated(productNftId, riskId);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
function updateRiskState(
|
|
102
|
+
RiskId riskId,
|
|
103
|
+
StateId state
|
|
104
|
+
)
|
|
105
|
+
external
|
|
106
|
+
virtual
|
|
107
|
+
restricted()
|
|
108
|
+
{
|
|
109
|
+
// checks
|
|
110
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
|
111
|
+
|
|
112
|
+
NftId riskProductNftId = instance.getInstanceReader().getRiskInfo(riskId).productNftId;
|
|
113
|
+
if (riskProductNftId != productNftId) {
|
|
114
|
+
revert ErrorRiskServiceRiskProductMismatch(riskId, riskProductNftId, productNftId);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// effects
|
|
118
|
+
instance.getInstanceStore().updateRiskState(riskId, state);
|
|
119
|
+
|
|
120
|
+
if (state == ACTIVE()) {
|
|
121
|
+
instance.getRiskSet().activate(riskId);
|
|
122
|
+
} else if (state == PAUSED()) {
|
|
123
|
+
instance.getRiskSet().pause(riskId);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
emit LogRiskServiceRiskStateUpdated(productNftId, riskId, state);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
function _getAndVerifyActiveComponent(ObjectType expectedType)
|
|
130
|
+
internal
|
|
131
|
+
view
|
|
132
|
+
returns (
|
|
133
|
+
NftId componentNftId,
|
|
134
|
+
IInstance instance
|
|
135
|
+
)
|
|
136
|
+
{
|
|
137
|
+
IRegistry.ObjectInfo memory info;
|
|
138
|
+
address instanceAddress;
|
|
139
|
+
bool isActive = true;
|
|
140
|
+
|
|
141
|
+
if (expectedType != COMPONENT()) {
|
|
142
|
+
(info, instanceAddress) = ContractLib.getAndVerifyComponent(
|
|
143
|
+
getRegistry(),
|
|
144
|
+
msg.sender, // caller
|
|
145
|
+
expectedType,
|
|
146
|
+
isActive);
|
|
147
|
+
} else {
|
|
148
|
+
(info, instanceAddress) = ContractLib.getAndVerifyAnyComponent(
|
|
149
|
+
getRegistry(),
|
|
150
|
+
msg.sender,
|
|
151
|
+
isActive);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// get component nft id and instance
|
|
155
|
+
componentNftId = info.nftId;
|
|
156
|
+
instance = IInstance(instanceAddress);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
|
161
|
+
return RISK();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
|
6
|
+
import {RiskService} from "./RiskService.sol";
|
|
7
|
+
|
|
8
|
+
contract RiskServiceManager is ProxyManager {
|
|
9
|
+
|
|
10
|
+
RiskService private _riskService;
|
|
11
|
+
|
|
12
|
+
/// @dev initializes proxy manager with product service implementation
|
|
13
|
+
constructor(
|
|
14
|
+
address authority,
|
|
15
|
+
address registry,
|
|
16
|
+
bytes32 salt
|
|
17
|
+
)
|
|
18
|
+
{
|
|
19
|
+
RiskService svc = new RiskService{salt: salt}();
|
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
|
21
|
+
IVersionable versionable = initialize(
|
|
22
|
+
registry,
|
|
23
|
+
address(svc),
|
|
24
|
+
data,
|
|
25
|
+
salt);
|
|
26
|
+
|
|
27
|
+
_riskService = RiskService(address(versionable));
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
//--- view functions ----------------------------------------------------//
|
|
31
|
+
function getRiskService()
|
|
32
|
+
external
|
|
33
|
+
view
|
|
34
|
+
returns (RiskService riskService)
|
|
35
|
+
{
|
|
36
|
+
return _riskService;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
}
|