@etherisc/gif-next 0.0.2-ffa91a6-022 → 3.0.0-0fefe0d-162
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 +123 -332
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +111 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +372 -131
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1509 -174
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +266 -64
- 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 +263 -87
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +102 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -38
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +269 -69
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -12
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +376 -147
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +160 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -11
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +232 -19
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +108 -79
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +268 -68
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +136 -95
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +268 -68
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +500 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +849 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2347 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +86 -45
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +268 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +35 -26
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -105
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +268 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -147
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +268 -68
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +374 -35
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +305 -5
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +425 -97
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +757 -393
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +236 -80
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +723 -553
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +331 -31
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1323 -2012
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- 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 +2 -2
- 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/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
- 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 +25 -16
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +282 -65
- 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 +19 -10
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -10
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -58
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +268 -68
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -20
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -20
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +338 -79
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +216 -59
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -37
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +268 -68
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -70
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -31
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +138 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +93 -112
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +115 -65
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -31
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -43
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +71 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +542 -305
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +335 -76
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +96 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +548 -231
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +167 -103
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -10
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +196 -201
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +130 -64
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -10
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +111 -132
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -10
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -10
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -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 +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1390 -134
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +97 -117
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1479 -192
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +77 -76
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +139 -64
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +296 -152
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +131 -167
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1615 -815
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +153 -91
- 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 +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- 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 +93 -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 +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- 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 +22 -25
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
- 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/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -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/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- 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/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 +81 -27
- 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 +15 -3
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +292 -317
- package/contracts/authorization/AccessAdminLib.sol +517 -22
- package/contracts/authorization/AccessManagerCloneable.sol +0 -18
- package/contracts/authorization/Authorization.sol +64 -239
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +25 -53
- package/contracts/authorization/IAuthorization.sol +3 -57
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +3 -4
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +9 -8
- package/contracts/distribution/DistributionService.sol +125 -62
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +20 -8
- package/contracts/examples/fire/FireProduct.sol +6 -6
- package/contracts/examples/flight/FlightLib.sol +311 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightOracle.sol +167 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +625 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +57 -6
- package/contracts/instance/IInstanceService.sol +42 -7
- package/contracts/instance/Instance.sol +111 -56
- package/contracts/instance/InstanceAdmin.sol +151 -294
- package/contracts/instance/InstanceAuthorizationV3.sol +106 -66
- package/contracts/instance/InstanceReader.sol +370 -392
- package/contracts/instance/InstanceService.sol +186 -134
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +15 -5
- package/contracts/instance/module/IDistribution.sol +17 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +2 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleService.sol +12 -12
- package/contracts/oracle/Oracle.sol +4 -6
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -16
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +7 -2
- package/contracts/pool/Pool.sol +6 -18
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +40 -181
- package/contracts/product/ApplicationService.sol +64 -11
- package/contracts/product/BasicProduct.sol +2 -3
- package/contracts/product/BasicProductAuthorization.sol +13 -5
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +21 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +40 -59
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +28 -31
- package/contracts/product/Product.sol +40 -16
- package/contracts/product/RiskService.sol +50 -15
- package/contracts/registry/IRegistry.sol +15 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +33 -118
- package/contracts/registry/RegistryAuthorization.sol +139 -69
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +52 -106
- package/contracts/registry/ReleaseRegistry.sol +20 -12
- package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +8 -8
- package/contracts/shared/ComponentService.sol +245 -262
- package/contracts/shared/ContractLib.sol +106 -75
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IComponent.sol +1 -1
- package/contracts/shared/IComponentService.sol +14 -15
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InstanceLinkedComponent.sol +63 -26
- package/contracts/shared/NftOwnable.sol +3 -1
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Service.sol +6 -4
- package/contracts/staking/IStaking.sol +261 -70
- package/contracts/staking/IStakingService.sol +39 -84
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +468 -217
- package/contracts/staking/StakingLib.sol +38 -124
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +62 -71
- package/contracts/staking/StakingService.sol +42 -185
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -331
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +17 -33
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +23 -0
- package/contracts/type/String.sol +42 -0
- package/contracts/type/Timestamp.sol +14 -3
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -0,0 +1,290 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
+
|
6
|
+
import {IComponents} from "./module/IComponents.sol";
|
7
|
+
import {IInstance} from "./IInstance.sol";
|
8
|
+
import {IPolicy} from "./module/IPolicy.sol";
|
9
|
+
import {IRisk} from "./module/IRisk.sol";
|
10
|
+
|
11
|
+
import {BalanceStore} from "./base/BalanceStore.sol";
|
12
|
+
import {BaseStore} from "./BaseStore.sol";
|
13
|
+
import {Blocknumber} from "../type/Blocknumber.sol";
|
14
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
15
|
+
import {Key32} from "../type/Key32.sol";
|
16
|
+
import {NftId} from "../type/NftId.sol";
|
17
|
+
import {ObjectCounter} from "./base/ObjectCounter.sol";
|
18
|
+
import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
|
19
|
+
import {ObjectType, FEE, POLICY, PREMIUM, PRODUCT} from "../type/ObjectType.sol";
|
20
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
21
|
+
import {RiskId} from "../type/RiskId.sol";
|
22
|
+
import {StateId, KEEP_STATE} from "../type/StateId.sol";
|
23
|
+
|
24
|
+
|
25
|
+
contract ProductStore is
|
26
|
+
AccessManagedUpgradeable,
|
27
|
+
BalanceStore,
|
28
|
+
BaseStore,
|
29
|
+
ObjectCounter,
|
30
|
+
ObjectLifecycle
|
31
|
+
{
|
32
|
+
event LogProductStoreProductInfoCreated(NftId productNftId, StateId state, address createdBy, address txOrigin);
|
33
|
+
event LogProductStoreProductInfoUpdated(NftId productNftId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
34
|
+
event LogProductStoreFeeInfoCreated(NftId productNftId, StateId state, address createdBy, address txOrigin);
|
35
|
+
event LogProductStoreFeeInfoUpdated(NftId productNftId, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
36
|
+
event LogProductStoreRiskInfoCreated(RiskId riskId, StateId state, address createdBy, address txOrigin);
|
37
|
+
event LogProductStoreRiskInfoUpdated(RiskId riskId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
38
|
+
event LogProductStorePolicyInfoCreated(NftId policyNftId, StateId state, address createdBy, address txOrigin);
|
39
|
+
event LogProductStorePolicyInfoUpdated(NftId policyNftId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
40
|
+
event LogProductStorePremiumInfoCreated(NftId policyNftId, StateId state, address createdBy, address txOrigin);
|
41
|
+
event LogProductStorePremiumInfoUpdated(NftId policyNftId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
42
|
+
event LogProductStoreClaimInfoCreated(NftId policyNftId, ClaimId claimId, StateId state, address createdBy, address txOrigin);
|
43
|
+
event LogProductStoreClaimInfoUpdated(NftId policyNftId, ClaimId claimId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
44
|
+
event LogProductStorePayoutInfoCreated(NftId policyNftId, PayoutId payoutId, StateId state, address createdBy, address txOrigin);
|
45
|
+
event LogProductStorePayoutInfoUpdated(NftId policyNftId, PayoutId payoutId, StateId oldState, StateId newState, address updatedBy, address txOrigin, Blocknumber lastUpdatedIn);
|
46
|
+
|
47
|
+
mapping(Key32 key32 => IComponents.ProductInfo) private _products;
|
48
|
+
mapping(Key32 key32 => IComponents.FeeInfo) private _fees;
|
49
|
+
mapping(Key32 key32 => IRisk.RiskInfo) private _risks;
|
50
|
+
mapping(Key32 key32 => IPolicy.PolicyInfo) private _policies;
|
51
|
+
mapping(Key32 key32 => IPolicy.PremiumInfo) private _premiums;
|
52
|
+
mapping(Key32 key32 => IPolicy.ClaimInfo) private _claims;
|
53
|
+
mapping(Key32 key32 => IPolicy.PayoutInfo) private _payouts;
|
54
|
+
|
55
|
+
|
56
|
+
/// @dev This initializer needs to be called from the instance itself.
|
57
|
+
function initialize()
|
58
|
+
public
|
59
|
+
initializer()
|
60
|
+
{
|
61
|
+
address instance = msg.sender;
|
62
|
+
address authority = IInstance(instance).authority();
|
63
|
+
|
64
|
+
__AccessManaged_init(authority);
|
65
|
+
// double initialization, safe
|
66
|
+
_initializeLifecycle();
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
//--- Product -----------------------------------------------------------//
|
71
|
+
|
72
|
+
function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
|
73
|
+
Key32 key = _toNftKey32(productNftId, PRODUCT());
|
74
|
+
_createMetadata(key);
|
75
|
+
_products[key] = info;
|
76
|
+
// solhint-disable-next-line avoid-tx-origin
|
77
|
+
emit LogProductStoreProductInfoCreated(productNftId, getState(key), msg.sender, tx.origin);
|
78
|
+
}
|
79
|
+
|
80
|
+
function updateProduct(NftId productNftId, IComponents.ProductInfo memory info, StateId newState) external restricted() {
|
81
|
+
Key32 key = _toNftKey32(productNftId, PRODUCT());
|
82
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
83
|
+
_products[key] = info;
|
84
|
+
// solhint-disable-next-line avoid-tx-origin
|
85
|
+
emit LogProductStoreProductInfoUpdated(productNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
86
|
+
}
|
87
|
+
|
88
|
+
function getProductInfo(NftId productNftId) external view returns (IComponents.ProductInfo memory info) {
|
89
|
+
return _products[_toNftKey32(productNftId, PRODUCT())];
|
90
|
+
}
|
91
|
+
|
92
|
+
//--- Fee -----------------------------------------------------------//
|
93
|
+
|
94
|
+
function createFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
|
95
|
+
Key32 key = _toNftKey32(productNftId, FEE());
|
96
|
+
_createMetadata(key);
|
97
|
+
_fees[key] = info;
|
98
|
+
// solhint-disable-next-line avoid-tx-origin
|
99
|
+
emit LogProductStoreFeeInfoCreated(productNftId, getState(key), msg.sender, tx.origin);
|
100
|
+
}
|
101
|
+
|
102
|
+
// Fee only has one state, so no change change possible
|
103
|
+
function updateFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
|
104
|
+
Key32 key = _toNftKey32(productNftId, FEE());
|
105
|
+
(Blocknumber lastUpdatedIn,) = _updateState(key, KEEP_STATE());
|
106
|
+
_fees[key] = info;
|
107
|
+
// solhint-disable-next-line avoid-tx-origin
|
108
|
+
emit LogProductStoreFeeInfoUpdated(productNftId, msg.sender, tx.origin, lastUpdatedIn);
|
109
|
+
}
|
110
|
+
|
111
|
+
function getFeeInfo(NftId productNftId) external view returns (IComponents.FeeInfo memory info) {
|
112
|
+
return _fees[_toNftKey32(productNftId, FEE())];
|
113
|
+
}
|
114
|
+
|
115
|
+
//--- Risk --------------------------------------------------------------//
|
116
|
+
function createRisk(RiskId riskId, IRisk.RiskInfo memory info) external restricted() {
|
117
|
+
Key32 key = riskId.toKey32();
|
118
|
+
_createMetadata(key);
|
119
|
+
_risks[key] = info;
|
120
|
+
// solhint-disable-next-line avoid-tx-origin
|
121
|
+
emit LogProductStoreRiskInfoCreated(riskId, getState(key), msg.sender, tx.origin);
|
122
|
+
}
|
123
|
+
|
124
|
+
function updateRisk(RiskId riskId, IRisk.RiskInfo memory info, StateId newState) external restricted() {
|
125
|
+
Key32 key = riskId.toKey32();
|
126
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
127
|
+
_risks[key] = info;
|
128
|
+
// solhint-disable-next-line avoid-tx-origin
|
129
|
+
emit LogProductStoreRiskInfoUpdated(riskId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
130
|
+
}
|
131
|
+
|
132
|
+
function updateRiskState(RiskId riskId, StateId newState) external restricted() {
|
133
|
+
// _updateState(riskId.toKey32(), newState);
|
134
|
+
Key32 key = riskId.toKey32();
|
135
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
136
|
+
// solhint-disable-next-line avoid-tx-origin
|
137
|
+
emit LogProductStoreRiskInfoUpdated(riskId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
138
|
+
}
|
139
|
+
|
140
|
+
function getRiskInfo(RiskId riskId) external view returns (IRisk.RiskInfo memory info) {
|
141
|
+
return _risks[riskId.toKey32()];
|
142
|
+
}
|
143
|
+
|
144
|
+
//--- Application (Policy) ----------------------------------------------//
|
145
|
+
|
146
|
+
function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
|
147
|
+
_registerBalanceTarget(applicationNftId);
|
148
|
+
Key32 key = _toNftKey32(applicationNftId, POLICY());
|
149
|
+
_createMetadata(key);
|
150
|
+
_policies[key] = policy;
|
151
|
+
// solhint-disable-next-line avoid-tx-origin
|
152
|
+
emit LogProductStorePolicyInfoCreated(applicationNftId, getState(key), msg.sender, tx.origin);
|
153
|
+
}
|
154
|
+
|
155
|
+
function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
156
|
+
Key32 key = _toNftKey32(applicationNftId, POLICY());
|
157
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
158
|
+
_policies[key] = policy;
|
159
|
+
// solhint-disable-next-line avoid-tx-origin
|
160
|
+
emit LogProductStorePolicyInfoUpdated(applicationNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
161
|
+
}
|
162
|
+
|
163
|
+
function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
|
164
|
+
Key32 key = _toNftKey32(applicationNftId, POLICY());
|
165
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
166
|
+
// solhint-disable-next-line avoid-tx-origin
|
167
|
+
emit LogProductStorePolicyInfoUpdated(applicationNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
168
|
+
}
|
169
|
+
|
170
|
+
//--- Policy ------------------------------------------------------------//
|
171
|
+
|
172
|
+
function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
173
|
+
Key32 key = _toNftKey32(policyNftId, POLICY());
|
174
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
175
|
+
_policies[key] = policy;
|
176
|
+
// solhint-disable-next-line avoid-tx-origin
|
177
|
+
emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
178
|
+
}
|
179
|
+
|
180
|
+
function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
181
|
+
Key32 key = _toNftKey32(policyNftId, POLICY());
|
182
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
183
|
+
_policies[key] = policy;
|
184
|
+
// solhint-disable-next-line avoid-tx-origin
|
185
|
+
emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
186
|
+
}
|
187
|
+
|
188
|
+
function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
|
189
|
+
Key32 key = _toNftKey32(policyNftId, POLICY());
|
190
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
191
|
+
// solhint-disable-next-line avoid-tx-origin
|
192
|
+
emit LogProductStorePolicyInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
193
|
+
}
|
194
|
+
|
195
|
+
function getPolicyInfo(NftId policyNftId) external view returns (IPolicy.PolicyInfo memory policy) {
|
196
|
+
return _policies[_toNftKey32(policyNftId, POLICY())];
|
197
|
+
}
|
198
|
+
|
199
|
+
//--- Premium (Policy) ----------------------------------------------//
|
200
|
+
|
201
|
+
function createPremium(NftId policyNftId, IPolicy.PremiumInfo memory premium) external restricted() {
|
202
|
+
Key32 key = _toNftKey32(policyNftId, PREMIUM());
|
203
|
+
_createMetadata(key);
|
204
|
+
_premiums[key] = premium;
|
205
|
+
// solhint-disable-next-line avoid-tx-origin
|
206
|
+
emit LogProductStorePremiumInfoCreated(policyNftId, getState(key), msg.sender, tx.origin);
|
207
|
+
}
|
208
|
+
|
209
|
+
function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
|
210
|
+
Key32 key = _toNftKey32(policyNftId, PREMIUM());
|
211
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
212
|
+
// solhint-disable-next-line avoid-tx-origin
|
213
|
+
emit LogProductStorePremiumInfoUpdated(policyNftId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
214
|
+
}
|
215
|
+
|
216
|
+
function getPremiumInfo(NftId policyNftId) external view returns (IPolicy.PremiumInfo memory premium) {
|
217
|
+
return _premiums[_toNftKey32(policyNftId, PREMIUM())];
|
218
|
+
}
|
219
|
+
|
220
|
+
//--- Claim -------------------------------------------------------------//
|
221
|
+
|
222
|
+
function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
|
223
|
+
Key32 key = _toClaimKey32(policyNftId, claimId);
|
224
|
+
_createMetadata(key);
|
225
|
+
_claims[key] = claim;
|
226
|
+
// solhint-disable-next-line avoid-tx-origin
|
227
|
+
emit LogProductStoreClaimInfoCreated(policyNftId, claimId, getState(key), msg.sender, tx.origin);
|
228
|
+
}
|
229
|
+
|
230
|
+
function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
|
231
|
+
Key32 key = _toClaimKey32(policyNftId, claimId);
|
232
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
233
|
+
_claims[key] = claim;
|
234
|
+
// solhint-disable-next-line avoid-tx-origin
|
235
|
+
emit LogProductStoreClaimInfoUpdated(policyNftId, claimId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
236
|
+
}
|
237
|
+
|
238
|
+
function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
|
239
|
+
Key32 key = _toClaimKey32(policyNftId, claimId);
|
240
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
241
|
+
// solhint-disable-next-line avoid-tx-origin
|
242
|
+
emit LogProductStoreClaimInfoUpdated(policyNftId, claimId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
243
|
+
}
|
244
|
+
|
245
|
+
function getClaimInfo(NftId policyNftId, ClaimId claimId) external view returns (IPolicy.ClaimInfo memory claim) {
|
246
|
+
return _claims[_toClaimKey32(policyNftId, claimId)];
|
247
|
+
}
|
248
|
+
|
249
|
+
//--- Payout ------------------------------------------------------------//
|
250
|
+
|
251
|
+
function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
252
|
+
Key32 key = _toPayoutKey32(policyNftId, payoutId);
|
253
|
+
_createMetadata(key);
|
254
|
+
_payouts[key] = payout;
|
255
|
+
// solhint-disable-next-line avoid-tx-origin
|
256
|
+
emit LogProductStorePayoutInfoCreated(policyNftId, payoutId, getState(key), msg.sender, tx.origin);
|
257
|
+
}
|
258
|
+
|
259
|
+
function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
|
260
|
+
Key32 key = _toPayoutKey32(policyNftId, payoutId);
|
261
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
262
|
+
_payouts[key] = payout;
|
263
|
+
// solhint-disable-next-line avoid-tx-origin
|
264
|
+
emit LogProductStorePayoutInfoUpdated(policyNftId, payoutId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
265
|
+
}
|
266
|
+
|
267
|
+
function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
|
268
|
+
Key32 key = _toPayoutKey32(policyNftId, payoutId);
|
269
|
+
(Blocknumber lastUpdatedIn, StateId oldState) = _updateState(key, newState);
|
270
|
+
// solhint-disable-next-line avoid-tx-origin
|
271
|
+
emit LogProductStorePayoutInfoUpdated(policyNftId, payoutId, oldState, newState, msg.sender, tx.origin, lastUpdatedIn);
|
272
|
+
}
|
273
|
+
|
274
|
+
function getPayoutInfo(NftId policyNftId, PayoutId payoutId) external view returns (IPolicy.PayoutInfo memory payout) {
|
275
|
+
return _payouts[_toPayoutKey32(policyNftId, payoutId)];
|
276
|
+
}
|
277
|
+
|
278
|
+
//--- internal view/pure functions --------------------------------------//
|
279
|
+
function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
|
280
|
+
return nftId.toKey32(objectType);
|
281
|
+
}
|
282
|
+
|
283
|
+
function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
|
284
|
+
return claimId.toKey32(policyNftId);
|
285
|
+
}
|
286
|
+
|
287
|
+
function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
|
288
|
+
return payoutId.toKey32(policyNftId);
|
289
|
+
}
|
290
|
+
}
|
@@ -19,7 +19,6 @@ contract RiskSet is
|
|
19
19
|
event LogRiskSetRiskAdded(NftId productNftId, RiskId riskId);
|
20
20
|
event LogRiskSetRiskActive(NftId poolNftId, RiskId riskId);
|
21
21
|
event LogRiskSetRiskPaused(NftId poolNftId, RiskId riskId);
|
22
|
-
event LogRiskSetRiskArchived(NftId poolNftId, RiskId riskId);
|
23
22
|
|
24
23
|
error ErrorRiskSetRiskLocked(RiskId riskId, NftId policyNftId);
|
25
24
|
error ErrorRiskSetRiskUnknown(RiskId riskId);
|
@@ -73,7 +72,7 @@ contract RiskSet is
|
|
73
72
|
}
|
74
73
|
|
75
74
|
/// @dev Applications linked to paused/archived risks may not be underwritten
|
76
|
-
function
|
75
|
+
function deactivate(RiskId riskId) external restricted() {
|
77
76
|
NftId productNftId = ObjectSetHelperLib.getProductNftId(_instanceAddress, riskId);
|
78
77
|
_deactivate(productNftId, riskId.toKey32());
|
79
78
|
emit LogRiskSetRiskPaused(productNftId, riskId);
|
@@ -92,6 +91,15 @@ contract RiskSet is
|
|
92
91
|
}
|
93
92
|
}
|
94
93
|
|
94
|
+
function hasRisk(NftId productNftId, RiskId riskId)
|
95
|
+
public
|
96
|
+
view
|
97
|
+
returns (bool)
|
98
|
+
{
|
99
|
+
Key32 riskKey32 = riskId.toKey32();
|
100
|
+
return _contains(productNftId, riskKey32);
|
101
|
+
}
|
102
|
+
|
95
103
|
function risks(NftId productNftId) external view returns(uint256) {
|
96
104
|
return _objects(productNftId);
|
97
105
|
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
string constant INSTANCE_TARGET_NAME = "Instance";
|
5
|
+
string constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
6
|
+
string constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
7
|
+
string constant PRODUCT_STORE_TARGET_NAME = "ProductStore";
|
8
|
+
string constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
9
|
+
string constant RISK_SET_TARGET_NAME = "RiskSet";
|
10
|
+
|
@@ -24,13 +24,12 @@ contract BalanceStore {
|
|
24
24
|
mapping(NftId nftId => Amount balance) private _balanceAmount;
|
25
25
|
mapping(NftId nftId => Amount locked) private _lockedAmount;
|
26
26
|
mapping(NftId nftId => Amount fees) private _feeAmount;
|
27
|
-
mapping(NftId nftId => bool isRegistered) private _isRegistered;
|
28
27
|
|
29
|
-
//
|
28
|
+
// used to indicate if the target has been registered as well as when it was last updated (not used externally atm)
|
30
29
|
mapping(NftId nftId => Blocknumber lastUpdatedIn) private _lastUpdatedIn;
|
31
30
|
|
32
31
|
modifier onlyRegisteredTarget(NftId targetNftId) {
|
33
|
-
if (!
|
32
|
+
if (!_lastUpdatedIn[targetNftId].gtz()) {
|
34
33
|
revert ErrorBalanceStoreTargetNotRegistered(targetNftId);
|
35
34
|
}
|
36
35
|
_;
|
@@ -55,11 +54,10 @@ contract BalanceStore {
|
|
55
54
|
}
|
56
55
|
|
57
56
|
function _registerBalanceTarget(NftId targetNftId) internal {
|
58
|
-
if (
|
57
|
+
if (_lastUpdatedIn[targetNftId].gtz()) {
|
59
58
|
revert ErrorBalanceStoreTargetAlreadyRegistered(targetNftId);
|
60
59
|
}
|
61
60
|
|
62
|
-
_isRegistered[targetNftId] = true;
|
63
61
|
_setLastUpdatedIn(targetNftId);
|
64
62
|
|
65
63
|
emit LogBalanceStoreTargetRegistered(targetNftId);
|
@@ -118,6 +116,6 @@ contract BalanceStore {
|
|
118
116
|
|
119
117
|
//--- internal/private functions ----------------------------------------//
|
120
118
|
function _setLastUpdatedIn(NftId targetNftId) internal {
|
121
|
-
_lastUpdatedIn[targetNftId] = BlocknumberLib.
|
119
|
+
_lastUpdatedIn[targetNftId] = BlocknumberLib.current();
|
122
120
|
}
|
123
121
|
}
|
@@ -44,10 +44,7 @@ contract ObjectLifecycle is
|
|
44
44
|
|
45
45
|
function _setupBundleLifecycle() private {
|
46
46
|
setInitialState(BUNDLE(), ACTIVE());
|
47
|
-
setStateTransition(BUNDLE(), ACTIVE(), PAUSED());
|
48
47
|
setStateTransition(BUNDLE(), ACTIVE(), CLOSED());
|
49
|
-
setStateTransition(BUNDLE(), PAUSED(), ACTIVE());
|
50
|
-
setStateTransition(BUNDLE(), PAUSED(), CLOSED());
|
51
48
|
}
|
52
49
|
|
53
50
|
function _setupPolicyLifecycle() private {
|
@@ -69,6 +66,7 @@ contract ObjectLifecycle is
|
|
69
66
|
setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
|
70
67
|
setStateTransition(CLAIM(), SUBMITTED(), DECLINED());
|
71
68
|
setStateTransition(CLAIM(), CONFIRMED(), CLOSED());
|
69
|
+
setStateTransition(CLAIM(), CONFIRMED(), CANCELLED());
|
72
70
|
}
|
73
71
|
|
74
72
|
function _setupPayoutLifecycle() private {
|
@@ -79,9 +77,7 @@ contract ObjectLifecycle is
|
|
79
77
|
|
80
78
|
function _setupRiskLifecycle() private {
|
81
79
|
setInitialState(RISK(), ACTIVE());
|
82
|
-
setStateTransition(RISK(), ACTIVE(),
|
83
|
-
setStateTransition(RISK(), PAUSED(), ACTIVE());
|
84
|
-
setStateTransition(RISK(), PAUSED(), ARCHIVED());
|
80
|
+
setStateTransition(RISK(), ACTIVE(), CLOSED());
|
85
81
|
}
|
86
82
|
|
87
83
|
function _setupRequestLifecycle() private {
|
@@ -1,20 +1,21 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount} from "../../type/Amount.sol";
|
5
4
|
import {NftId} from "../../type/NftId.sol";
|
6
5
|
import {Fee} from "../../type/Fee.sol";
|
7
|
-
import {Seconds} from "../../type/Seconds.sol";
|
8
6
|
import {Timestamp} from "../../type/Timestamp.sol";
|
9
7
|
|
10
8
|
interface IBundle {
|
11
9
|
|
12
10
|
struct BundleInfo {
|
13
|
-
|
14
|
-
Fee fee; // bundle fee on net premium amounts
|
15
|
-
bytes filter; // required conditions for applications to be considered for collateralization by this bundle
|
11
|
+
// slot 0
|
16
12
|
Timestamp activatedAt;
|
17
13
|
Timestamp expiredAt; // no new policies starting with this timestamp
|
18
14
|
Timestamp closedAt; // no open policies, locked amount = 0
|
15
|
+
NftId poolNftId;
|
16
|
+
// slot 1
|
17
|
+
Fee fee; // bundle fee on net premium amounts
|
18
|
+
// slot 2
|
19
|
+
bytes filter; // required conditions for applications to be considered for collateralization by this bundle
|
19
20
|
}
|
20
21
|
}
|
@@ -1,8 +1,6 @@
|
|
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} from "../../type/Amount.sol";
|
7
5
|
import {Fee} from "../../type/Fee.sol";
|
8
6
|
import {NftId} from "../../type/NftId.sol";
|
@@ -12,12 +10,14 @@ import {UFixed} from "../../type/UFixed.sol";
|
|
12
10
|
interface IComponents {
|
13
11
|
|
14
12
|
struct ComponentInfo {
|
13
|
+
// slot 0
|
15
14
|
string name; // component name (needs to be unique per instance)
|
15
|
+
// slot 1
|
16
16
|
TokenHandler tokenHandler;
|
17
|
-
bytes data; // will hold component type specific additional info (eg encoded pool info)
|
18
17
|
}
|
19
18
|
|
20
19
|
struct ProductInfo {
|
20
|
+
// slot 0
|
21
21
|
bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
|
22
22
|
bool isInterceptingPolicyTransfers; // custom logic for policy nft transfers
|
23
23
|
bool hasDistribution; // flag to indicate if distribution is enabled
|
@@ -25,26 +25,36 @@ interface IComponents {
|
|
25
25
|
uint8 numberOfOracles; // actual number of oracles
|
26
26
|
NftId poolNftId; // mandatory
|
27
27
|
NftId distributionNftId; // 0..1 (optional)
|
28
|
+
// slot 1
|
28
29
|
NftId [] oracleNftId; // 0..n (optional)
|
29
30
|
}
|
30
31
|
|
31
32
|
struct FeeInfo {
|
33
|
+
// slot 0
|
32
34
|
Fee productFee; // product fee on net premium
|
35
|
+
// slot 1
|
33
36
|
Fee processingFee; // product fee on payout amounts
|
37
|
+
// slot 2
|
34
38
|
Fee distributionFee; // distribution fee for sales that do not include commissions
|
39
|
+
// slot 3
|
35
40
|
Fee minDistributionOwnerFee; // min fee required by distribution owner (not including commissions for distributors)
|
41
|
+
// slot 4
|
36
42
|
Fee poolFee; // pool fee on net premium
|
43
|
+
// slot 5
|
37
44
|
Fee stakingFee; // pool fee on staked capital from investor
|
45
|
+
// slot 6
|
38
46
|
Fee performanceFee; // pool fee on profits from capital investors
|
39
47
|
}
|
40
48
|
|
41
49
|
struct PoolInfo {
|
50
|
+
// slot 0
|
42
51
|
Amount maxBalanceAmount; // max balance amount allowed for pool
|
52
|
+
UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
|
53
|
+
// slot 1
|
54
|
+
UFixed retentionLevel; // amount of collateral held in pool (default 100%)
|
43
55
|
bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
|
44
56
|
bool isProcessingConfirmedClaims; // custom logic for claims confirmation
|
45
57
|
bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
|
46
58
|
bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
|
47
|
-
UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
|
48
|
-
UFixed retentionLevel; // amount of collateral held in pool (default 100%)
|
49
59
|
}
|
50
60
|
}
|
@@ -1,7 +1,6 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount} from "../../type/Amount.sol";
|
5
4
|
import {DistributorType} from "../../type/DistributorType.sol";
|
6
5
|
import {NftId} from "../../type/NftId.sol";
|
7
6
|
import {Seconds} from "../../type/Seconds.sol";
|
@@ -11,33 +10,44 @@ import {UFixed} from "../../type/UFixed.sol";
|
|
11
10
|
interface IDistribution {
|
12
11
|
|
13
12
|
struct DistributorTypeInfo {
|
14
|
-
|
15
|
-
NftId distributionNftId;
|
13
|
+
// slot 0
|
16
14
|
UFixed minDiscountPercentage;
|
15
|
+
NftId distributionNftId;
|
16
|
+
// slot 1
|
17
17
|
UFixed maxDiscountPercentage;
|
18
|
-
UFixed commissionPercentage;
|
19
18
|
uint32 maxReferralCount;
|
20
19
|
Seconds maxReferralLifetime;
|
21
20
|
bool allowSelfReferrals;
|
22
21
|
bool allowRenewals;
|
22
|
+
// slot 2
|
23
|
+
UFixed commissionPercentage;
|
24
|
+
// slot 3
|
25
|
+
string name;
|
26
|
+
// slot 4
|
23
27
|
bytes data;
|
24
28
|
}
|
25
29
|
|
26
30
|
struct DistributorInfo {
|
31
|
+
// slot 0
|
27
32
|
DistributorType distributorType;
|
28
33
|
bool active;
|
29
|
-
bytes data;
|
30
34
|
uint32 numPoliciesSold;
|
35
|
+
// slot 1
|
36
|
+
bytes data;
|
31
37
|
}
|
32
38
|
|
33
39
|
struct ReferralInfo {
|
40
|
+
// slot 0
|
34
41
|
NftId distributionNftId;
|
35
42
|
NftId distributorNftId;
|
36
|
-
string referralCode;
|
37
|
-
UFixed discountPercentage;
|
38
43
|
uint32 maxReferrals;
|
39
44
|
uint32 usedReferrals;
|
45
|
+
// slot 1
|
46
|
+
UFixed discountPercentage;
|
40
47
|
Timestamp expiryAt;
|
48
|
+
// slot 2
|
49
|
+
string referralCode;
|
50
|
+
// slot 3
|
41
51
|
bytes data;
|
42
52
|
}
|
43
53
|
|
@@ -12,29 +12,38 @@ import {Timestamp} from "../../type/Timestamp.sol";
|
|
12
12
|
interface IPolicy {
|
13
13
|
|
14
14
|
struct PremiumInfo {
|
15
|
+
// slot 0
|
15
16
|
// premium splitting per target wallet
|
16
17
|
Amount productFeeAmount;
|
17
18
|
Amount distributionFeeAndCommissionAmount;
|
19
|
+
// slot 1
|
18
20
|
Amount poolPremiumAndFeeAmount;
|
19
21
|
|
20
22
|
// detailed positions
|
21
23
|
// this is the net premium calculated by the product
|
22
24
|
Amount netPremiumAmount;
|
25
|
+
// slot 2
|
23
26
|
// fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
|
24
27
|
Amount fullPremiumAmount;
|
25
28
|
// effective premium = fullPremium - discount
|
26
29
|
Amount premiumAmount;
|
30
|
+
// slot 3
|
27
31
|
Amount productFeeFixAmount;
|
28
32
|
Amount poolFeeFixAmount;
|
33
|
+
// slot 4
|
29
34
|
Amount bundleFeeFixAmount;
|
30
35
|
Amount distributionFeeFixAmount;
|
36
|
+
// slot 5
|
31
37
|
Amount productFeeVarAmount;
|
32
38
|
Amount poolFeeVarAmount;
|
39
|
+
// slot 6
|
33
40
|
Amount bundleFeeVarAmount;
|
34
41
|
Amount distributionFeeVarAmount;
|
42
|
+
// slot 7
|
35
43
|
Amount distributionOwnerFeeFixAmount;
|
36
44
|
// this is the remaining amount when the commission and discount are subtracted from the distribution fee variable part (must be at least the minDistributionOwnerFee)
|
37
45
|
Amount distributionOwnerFeeVarAmount;
|
46
|
+
// slot 8
|
38
47
|
// this value is based on distributor type referenced in the referral
|
39
48
|
Amount commissionAmount;
|
40
49
|
// this is based on referral used
|
@@ -43,43 +52,54 @@ interface IPolicy {
|
|
43
52
|
|
44
53
|
/// @dev policy data for the full policy lifecycle
|
45
54
|
struct PolicyInfo {
|
46
|
-
//
|
55
|
+
// slot 0
|
47
56
|
NftId productNftId;
|
48
57
|
NftId bundleNftId;
|
49
|
-
ReferralId referralId;
|
50
58
|
RiskId riskId;
|
59
|
+
// slot 1
|
51
60
|
Amount sumInsuredAmount;
|
52
61
|
Amount premiumAmount; // expected premium at application time
|
53
|
-
|
54
|
-
|
55
|
-
// policy data that may change during the lifecycle
|
56
|
-
bytes processData;
|
62
|
+
ReferralId referralId;
|
63
|
+
// slot 2
|
57
64
|
uint16 claimsCount;
|
58
65
|
uint16 openClaimsCount;
|
59
66
|
Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
|
60
67
|
Amount payoutAmount; // sum of payouts (max = sum confirmed claim amountst)
|
68
|
+
// slot 3
|
61
69
|
Timestamp activatedAt; // time of underwriting
|
70
|
+
Seconds lifetime;
|
62
71
|
Timestamp expiredAt; // no new claims (activatedAt + lifetime)
|
63
72
|
Timestamp closedAt; // no locked capital (or declinedAt)
|
73
|
+
// slot 4
|
74
|
+
bytes applicationData;
|
75
|
+
// slot 5
|
76
|
+
bytes processData;
|
64
77
|
}
|
65
78
|
|
66
79
|
// claimId neeeds to be encoded policyNftId:claimId combination
|
67
80
|
struct ClaimInfo {
|
81
|
+
// slot 0
|
68
82
|
Amount claimAmount;
|
69
83
|
Amount paidAmount;
|
84
|
+
Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
|
70
85
|
uint24 payoutsCount;
|
86
|
+
// slot 1
|
71
87
|
uint24 openPayoutsCount;
|
88
|
+
// slot 2
|
72
89
|
bytes submissionData; // use case specific claim submission data, no changes after submitting the claim
|
90
|
+
// slot 3
|
73
91
|
bytes processData; // use case specific data that may include information supporting confirm or decline
|
74
|
-
Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
|
75
92
|
}
|
76
93
|
|
77
94
|
// claimId neeeds to be encoded policyNftId:claimId combination
|
78
95
|
struct PayoutInfo {
|
96
|
+
// slot 0
|
79
97
|
ClaimId claimId;
|
80
98
|
Amount amount;
|
99
|
+
Timestamp paidAt; // timestamp for actual payout
|
100
|
+
// slot 1
|
81
101
|
address beneficiary; // for address(0) beneficiary is policy nft owner
|
102
|
+
// slot 2
|
82
103
|
bytes data; // use case specific supporting data
|
83
|
-
Timestamp paidAt; // timestamp for actual payout
|
84
104
|
}
|
85
105
|
}
|