@etherisc/gif-next 0.0.2-9306579-093 → 0.0.2-9356555-232
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 +27 -6
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +211 -66
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +200 -16
- 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 +142 -25
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +107 -15
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +175 -216
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +206 -27
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +113 -130
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +334 -159
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +115 -65
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +100 -112
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +205 -66
- 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 +158 -195
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +206 -27
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +351 -318
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +203 -28
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +259 -168
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +156 -153
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +282 -193
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +714 -283
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -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 +158 -57
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +211 -82
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +434 -128
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +150 -90
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +627 -207
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +129 -157
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -45
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +469 -338
- 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/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +132 -173
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +180 -29
- 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 +94 -106
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +108 -125
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +151 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +95 -41
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +107 -152
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +206 -27
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +156 -326
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +79 -101
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -135
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +94 -145
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +192 -229
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +107 -163
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +330 -368
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +119 -69
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +190 -48
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +80 -38
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +228 -186
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +206 -27
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +272 -173
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +100 -78
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +131 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +170 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +139 -54
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +117 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +211 -164
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +86 -6
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +235 -170
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +102 -64
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +200 -106
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +93 -51
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +224 -182
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +167 -67
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +92 -38
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +98 -17
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
- 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 +142 -53
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +331 -261
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +181 -74
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -33
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -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 +414 -250
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +105 -104
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +483 -485
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +99 -73
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +55 -2
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
- 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 -86
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +446 -276
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +94 -106
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -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 +55 -2
- 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 +107 -124
- 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 +18 -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 +152 -38
- 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 +55 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
- 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 +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +110 -122
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +77 -16
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +33 -33
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +192 -192
- 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 +89 -51
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +120 -55
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +73 -39
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +171 -130
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +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 +3 -3
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- 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 +69 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- 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/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
- 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 +47 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +44 -12
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +237 -140
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +321 -205
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +17 -9
- package/contracts/authorization/IAuthorization.sol +27 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +15 -12
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +41 -47
- package/contracts/distribution/DistributionService.sol +127 -78
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +22 -20
- package/contracts/examples/fire/FirePool.sol +25 -10
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +66 -41
- package/contracts/examples/fire/FireProductAuthorization.sol +3 -3
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -4
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +37 -7
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +53 -27
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +17 -10
- package/contracts/instance/IInstanceService.sol +9 -29
- package/contracts/instance/Instance.sol +52 -34
- package/contracts/instance/InstanceAdmin.sol +249 -100
- package/contracts/instance/InstanceAuthorizationV3.sol +54 -45
- package/contracts/instance/InstanceReader.sol +187 -32
- package/contracts/instance/InstanceService.sol +85 -146
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +10 -7
- package/contracts/instance/module/IDistribution.sol +5 -2
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +5 -16
- package/contracts/oracle/OracleService.sol +107 -78
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +33 -24
- package/contracts/pool/BasicPoolAuthorization.sol +27 -9
- package/contracts/pool/BundleService.sol +88 -154
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +15 -43
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +58 -64
- package/contracts/pool/Pool.sol +112 -120
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +436 -242
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +39 -16
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +10 -12
- package/contracts/product/BasicProductAuthorization.sol +24 -11
- package/contracts/product/ClaimService.sol +202 -151
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +8 -2
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +26 -11
- package/contracts/product/IPricingService.sol +10 -9
- package/contracts/product/IProductComponent.sol +10 -1
- package/contracts/product/IRiskService.sol +7 -7
- package/contracts/product/PolicyService.sol +248 -252
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +35 -26
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +100 -63
- package/contracts/product/RiskService.sol +89 -31
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +10 -11
- package/contracts/registry/IRegistry.sol +14 -18
- package/contracts/registry/IRegistryService.sol +6 -4
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +29 -6
- package/contracts/registry/RegistryAdmin.sol +132 -242
- package/contracts/registry/RegistryService.sol +40 -58
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +257 -237
- package/contracts/registry/ServiceAuthorizationV3.sol +97 -48
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +69 -118
- package/contracts/shared/ComponentService.sol +422 -371
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +27 -15
- package/contracts/shared/ContractLib.sol +224 -9
- package/contracts/shared/IComponent.sol +8 -20
- package/contracts/shared/IComponentService.sol +41 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +68 -42
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +26 -6
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +53 -19
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +9 -31
- package/contracts/shared/TokenHandler.sol +274 -72
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +5 -8
- package/contracts/staking/IStakingService.sol +8 -3
- package/contracts/staking/StakeManagerLib.sol +1 -1
- package/contracts/staking/Staking.sol +63 -35
- package/contracts/staking/StakingReader.sol +1 -1
- package/contracts/staking/StakingService.sol +45 -22
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +48 -21
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +23 -15
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +14 -1
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +9 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +2 -1
- 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/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/module/IAccess.sol +0 -46
@@ -1,25 +1,26 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {ACTIVE, PAUSED} from "../../type/StateId.sol";
|
5
7
|
import {Amount, AmountLib} from "../../type/Amount.sol";
|
6
8
|
import {BasicProduct} from "../../product/BasicProduct.sol";
|
7
9
|
import {ClaimId} from "../../type/ClaimId.sol";
|
8
10
|
import {DamageLevel, DAMAGE_SMALL, DAMAGE_MEDIUM, DAMAGE_LARGE} from "./DamageLevel.sol";
|
11
|
+
import {FeeLib} from "../../type/Fee.sol";
|
9
12
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
13
|
+
import {IComponents} from "../../instance/module/IComponents.sol";
|
10
14
|
import {IPolicy} from "../../instance/module/IPolicy.sol";
|
11
|
-
import {NftId} from "../../type/NftId.sol";
|
15
|
+
import {NftId, NftIdLib} from "../../type/NftId.sol";
|
12
16
|
import {PayoutId} from "../../type/PayoutId.sol";
|
13
|
-
import {POLICY} from "../../type/ObjectType.sol";
|
17
|
+
import {POLICY, BUNDLE} from "../../type/ObjectType.sol";
|
14
18
|
import {ReferralLib} from "../../type/Referral.sol";
|
15
19
|
import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
|
16
20
|
import {Seconds} from "../../type/Seconds.sol";
|
17
|
-
import {StateId} from "../../type/StateId.sol";
|
18
21
|
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
19
22
|
import {UFixed, UFixedLib} from "../../type/UFixed.sol";
|
20
23
|
|
21
|
-
uint64 constant SPECIAL_ROLE_INT = 11111;
|
22
|
-
|
23
24
|
// solhint-disable-next-line func-name-mixedcase
|
24
25
|
function HALF_YEAR() pure returns (Seconds) {
|
25
26
|
return Seconds.wrap(180 * 86400);
|
@@ -53,6 +54,7 @@ contract FireProduct is
|
|
53
54
|
error ErrorFireProductUnknownDamageLevel(DamageLevel damageLevel);
|
54
55
|
error ErrorFireProductFireUnknown(uint256 fireId);
|
55
56
|
error ErrorFireProductNotPolicyOwner(NftId nftId, address owner);
|
57
|
+
error ErrorFireProductFireNotInCoveredCity(uint256 fireId, string cityName);
|
56
58
|
|
57
59
|
string[] private _cities;
|
58
60
|
// map from city name to the RiskId
|
@@ -67,27 +69,25 @@ contract FireProduct is
|
|
67
69
|
NftId instanceNftid,
|
68
70
|
string memory componentName,
|
69
71
|
address token,
|
70
|
-
address pool,
|
71
72
|
IAuthorization authorization
|
72
73
|
)
|
73
74
|
{
|
74
75
|
address initialOwner = msg.sender;
|
76
|
+
|
75
77
|
_initialize(
|
76
78
|
registry,
|
77
79
|
instanceNftid,
|
78
80
|
componentName,
|
79
81
|
token,
|
80
|
-
pool,
|
81
82
|
authorization,
|
82
83
|
initialOwner);
|
83
84
|
}
|
84
85
|
|
85
86
|
function _initialize(
|
86
87
|
address registry,
|
87
|
-
NftId
|
88
|
+
NftId instanceNftId,
|
88
89
|
string memory componentName,
|
89
90
|
address token,
|
90
|
-
address pool,
|
91
91
|
IAuthorization authorization,
|
92
92
|
address initialOwner
|
93
93
|
)
|
@@ -96,14 +96,30 @@ contract FireProduct is
|
|
96
96
|
{
|
97
97
|
_initializeBasicProduct(
|
98
98
|
registry,
|
99
|
-
|
100
|
-
authorization,
|
101
|
-
initialOwner,
|
99
|
+
instanceNftId,
|
102
100
|
componentName,
|
103
101
|
token,
|
104
|
-
|
105
|
-
|
106
|
-
|
102
|
+
IComponents.ProductInfo({
|
103
|
+
isProcessingFundedClaims: false,
|
104
|
+
isInterceptingPolicyTransfers: false,
|
105
|
+
hasDistribution: false,
|
106
|
+
expectedNumberOfOracles: 0,
|
107
|
+
numberOfOracles: 0,
|
108
|
+
poolNftId: NftIdLib.zero(),
|
109
|
+
distributionNftId: NftIdLib.zero(),
|
110
|
+
oracleNftId: new NftId[](0)
|
111
|
+
}),
|
112
|
+
IComponents.FeeInfo({
|
113
|
+
productFee: FeeLib.zero(),
|
114
|
+
processingFee: FeeLib.zero(),
|
115
|
+
distributionFee: FeeLib.zero(),
|
116
|
+
minDistributionOwnerFee: FeeLib.zero(),
|
117
|
+
poolFee: FeeLib.zero(),
|
118
|
+
stakingFee: FeeLib.zero(),
|
119
|
+
performanceFee: FeeLib.zero()
|
120
|
+
}),
|
121
|
+
authorization,
|
122
|
+
initialOwner); // number of oracles
|
107
123
|
}
|
108
124
|
|
109
125
|
function cities() public view returns (uint256) {
|
@@ -158,15 +174,16 @@ contract FireProduct is
|
|
158
174
|
)
|
159
175
|
public
|
160
176
|
view
|
177
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
161
178
|
returns (Amount premiumAmount)
|
162
179
|
{
|
163
|
-
RiskId
|
164
|
-
if (
|
180
|
+
RiskId risk = _riskMapping[cityName];
|
181
|
+
if (risk.eqz()) {
|
165
182
|
revert ErrorFireProductCityUnknown(cityName);
|
166
183
|
}
|
167
184
|
premiumAmount = calculatePremium(
|
168
185
|
sumInsured,
|
169
|
-
|
186
|
+
risk,
|
170
187
|
lifetime,
|
171
188
|
"",
|
172
189
|
bundleNftId,
|
@@ -199,14 +216,15 @@ contract FireProduct is
|
|
199
216
|
)
|
200
217
|
public
|
201
218
|
restricted()
|
219
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
202
220
|
returns (NftId policyNftId)
|
203
221
|
{
|
204
222
|
address applicationOwner = msg.sender;
|
205
|
-
RiskId
|
223
|
+
RiskId risk = initializeCity(cityName);
|
206
224
|
|
207
225
|
Amount premiumAmount = calculatePremium(
|
208
226
|
sumInsured,
|
209
|
-
|
227
|
+
risk,
|
210
228
|
lifetime,
|
211
229
|
"",
|
212
230
|
bundleNftId,
|
@@ -214,7 +232,7 @@ contract FireProduct is
|
|
214
232
|
|
215
233
|
return _createApplication(
|
216
234
|
applicationOwner,
|
217
|
-
|
235
|
+
risk,
|
218
236
|
sumInsured,
|
219
237
|
premiumAmount,
|
220
238
|
lifetime,
|
@@ -228,15 +246,14 @@ contract FireProduct is
|
|
228
246
|
string memory cityName
|
229
247
|
)
|
230
248
|
public
|
231
|
-
returns (RiskId
|
249
|
+
returns (RiskId risk)
|
232
250
|
{
|
233
251
|
if (! _riskMapping[cityName].eqz()) {
|
234
252
|
return _riskMapping[cityName];
|
235
253
|
}
|
236
254
|
_cities.push(cityName);
|
237
|
-
|
238
|
-
|
239
|
-
_riskMapping[cityName] = riskId;
|
255
|
+
risk = _createRisk(bytes32(abi.encodePacked(cityName)), "");
|
256
|
+
_riskMapping[cityName] = risk;
|
240
257
|
}
|
241
258
|
|
242
259
|
/// @dev Calling this method will lock the sum insured amount in the pool and activate the policy at the given time.
|
@@ -248,6 +265,7 @@ contract FireProduct is
|
|
248
265
|
public
|
249
266
|
restricted()
|
250
267
|
onlyOwner()
|
268
|
+
onlyNftOfType(policyNftId, POLICY())
|
251
269
|
{
|
252
270
|
_createPolicy(policyNftId, activateAt);
|
253
271
|
_collectPremium(policyNftId, activateAt);
|
@@ -260,6 +278,7 @@ contract FireProduct is
|
|
260
278
|
public
|
261
279
|
restricted()
|
262
280
|
onlyOwner()
|
281
|
+
onlyNftOfType(policyNftId, POLICY())
|
263
282
|
{
|
264
283
|
_decline(policyNftId);
|
265
284
|
}
|
@@ -271,6 +290,7 @@ contract FireProduct is
|
|
271
290
|
public
|
272
291
|
restricted()
|
273
292
|
onlyOwner()
|
293
|
+
onlyNftOfType(policyNftId, POLICY())
|
274
294
|
returns (Timestamp)
|
275
295
|
{
|
276
296
|
return _expire(policyNftId, expireAt);
|
@@ -282,6 +302,7 @@ contract FireProduct is
|
|
282
302
|
public
|
283
303
|
restricted()
|
284
304
|
onlyOwner()
|
305
|
+
onlyNftOfType(policyNftId, POLICY())
|
285
306
|
{
|
286
307
|
_close(policyNftId);
|
287
308
|
}
|
@@ -325,16 +346,16 @@ contract FireProduct is
|
|
325
346
|
public
|
326
347
|
restricted()
|
327
348
|
onlyNftOwner(policyNftId)
|
328
|
-
|
349
|
+
onlyNftOfType(policyNftId, POLICY())
|
329
350
|
returns (ClaimId claimId, PayoutId payoutId)
|
330
351
|
{
|
331
352
|
IPolicy.PolicyInfo memory policyInfo = _getInstanceReader().getPolicyInfo(policyNftId);
|
332
|
-
_checkClaimConditions(policyNftId,
|
353
|
+
_checkClaimConditions(policyNftId, policyInfo, fireId);
|
333
354
|
|
334
|
-
Fire memory
|
355
|
+
Fire memory theFire = _fires[fireId];
|
335
356
|
_claimed[fireId][policyNftId] = true;
|
336
357
|
|
337
|
-
Amount claimAmount = _getClaimAmount(policyNftId, policyInfo.sumInsuredAmount,
|
358
|
+
Amount claimAmount = _getClaimAmount(policyNftId, policyInfo.sumInsuredAmount, theFire.damageLevel);
|
338
359
|
|
339
360
|
claimId = _submitClaim(policyNftId, claimAmount, abi.encodePacked(fireId));
|
340
361
|
_confirmClaim(policyNftId, claimId, claimAmount, "");
|
@@ -345,34 +366,35 @@ contract FireProduct is
|
|
345
366
|
|
346
367
|
function _checkClaimConditions(
|
347
368
|
NftId policyNftId,
|
348
|
-
|
349
|
-
|
369
|
+
IPolicy.PolicyInfo memory policyInfo,
|
370
|
+
uint256 fireId
|
350
371
|
)
|
351
372
|
internal
|
373
|
+
view
|
352
374
|
{
|
353
375
|
// check fire exists
|
354
376
|
if (_fires[fireId].reportedAt.eqz()) {
|
355
377
|
revert ErrorFireProductFireUnknown(fireId);
|
356
378
|
}
|
357
379
|
|
380
|
+
// check fire is in same city as policy coverage
|
381
|
+
if (_riskMapping[_fires[fireId].cityName] != policyInfo.riskId) {
|
382
|
+
revert ErrorFireProductFireNotInCoveredCity(fireId, _fires[fireId].cityName);
|
383
|
+
}
|
384
|
+
|
358
385
|
// check policy has not been claimed yet for this fire
|
359
386
|
if (_claimed[fireId][policyNftId]) {
|
360
387
|
revert ErrorFireProductAlreadyClaimed();
|
361
388
|
}
|
362
389
|
|
363
|
-
|
364
|
-
|
365
|
-
if (! policyState.eq(COLLATERALIZED())) {
|
366
|
-
revert ErrorFireProductPolicyNotActive(policyNftId);
|
367
|
-
}
|
368
|
-
|
369
|
-
Fire memory fire = _fires[fireId];
|
390
|
+
Fire memory theFire = _fires[fireId];
|
370
391
|
|
371
|
-
|
392
|
+
// check fire is during policy lifetime
|
393
|
+
if (theFire.reportedAt < policyInfo.activatedAt) {
|
372
394
|
revert ErrorFireProductPolicyNotYetActive(policyNftId, policyInfo.activatedAt);
|
373
395
|
}
|
374
396
|
|
375
|
-
if (
|
397
|
+
if (theFire.reportedAt >= policyInfo.expiredAt) {
|
376
398
|
revert ErrorFireProductPolicyExpired(policyNftId, policyInfo.expiredAt);
|
377
399
|
}
|
378
400
|
}
|
@@ -409,4 +431,7 @@ contract FireProduct is
|
|
409
431
|
}
|
410
432
|
}
|
411
433
|
|
434
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
435
|
+
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
436
|
+
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
412
437
|
}
|
@@ -4,7 +4,7 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {BasicProductAuthorization} from "../../product/BasicProductAuthorization.sol";
|
5
5
|
import {FireProduct} from "./FireProduct.sol";
|
6
6
|
import {IAccess} from "../../../contracts/authorization/IAccess.sol";
|
7
|
-
import {
|
7
|
+
import {PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
|
8
8
|
|
9
9
|
|
10
10
|
contract FireProductAuthorization
|
@@ -23,8 +23,9 @@ contract FireProductAuthorization
|
|
23
23
|
IAccess.FunctionInfo[] storage functions;
|
24
24
|
|
25
25
|
// authorize public role (open access to any account, only allows to lock target)
|
26
|
-
functions = _authorizeForTarget(
|
26
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
27
27
|
// fully public functions
|
28
|
+
_authorize(functions, FireProduct.approveTokenHandler.selector, "approveTokenHandler");
|
28
29
|
_authorize(functions, FireProduct.createApplication.selector, "createApplication");
|
29
30
|
|
30
31
|
// only owner
|
@@ -36,7 +37,6 @@ contract FireProductAuthorization
|
|
36
37
|
// only policy nft owner
|
37
38
|
_authorize(functions, FireProduct.submitClaim.selector, "submitClaim");
|
38
39
|
|
39
|
-
functions = _authorizeForTarget(getTargetName(), PRODUCT_OWNER_ROLE());
|
40
40
|
// TODO: add custom role for fire reporter
|
41
41
|
_authorize(functions, FireProduct.reportFire.selector, "reportFire");
|
42
42
|
}
|
@@ -1,9 +1,15 @@
|
|
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
|
+
import {Amount} from "../../type/Amount.sol";
|
4
7
|
import {BasicDistribution} from "../../distribution/BasicDistribution.sol";
|
5
8
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
6
9
|
import {NftId} from "../../type/NftId.sol";
|
10
|
+
import {ReferralId} from "../../type/Referral.sol";
|
11
|
+
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
12
|
+
import {UFixed, UFixedLib} from "../../type/UFixed.sol";
|
7
13
|
|
8
14
|
|
9
15
|
contract SimpleDistribution is
|
@@ -12,7 +18,7 @@ contract SimpleDistribution is
|
|
12
18
|
|
13
19
|
constructor(
|
14
20
|
address registry,
|
15
|
-
NftId
|
21
|
+
NftId productNftId,
|
16
22
|
IAuthorization authorization,
|
17
23
|
address initialOwner,
|
18
24
|
address token
|
@@ -20,7 +26,7 @@ contract SimpleDistribution is
|
|
20
26
|
{
|
21
27
|
initialize(
|
22
28
|
registry,
|
23
|
-
|
29
|
+
productNftId,
|
24
30
|
authorization,
|
25
31
|
initialOwner,
|
26
32
|
"SimpleDistribution",
|
@@ -29,7 +35,7 @@ contract SimpleDistribution is
|
|
29
35
|
|
30
36
|
function initialize(
|
31
37
|
address registry,
|
32
|
-
NftId
|
38
|
+
NftId productNftId,
|
33
39
|
IAuthorization authorization,
|
34
40
|
address initialOwner,
|
35
41
|
string memory name,
|
@@ -41,10 +47,39 @@ contract SimpleDistribution is
|
|
41
47
|
{
|
42
48
|
_initializeBasicDistribution(
|
43
49
|
registry,
|
44
|
-
|
50
|
+
productNftId,
|
45
51
|
authorization,
|
46
52
|
initialOwner,
|
47
53
|
name,
|
48
54
|
token);
|
49
55
|
}
|
56
|
+
|
57
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
58
|
+
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
59
|
+
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
60
|
+
|
61
|
+
/**
|
62
|
+
* @dev create referral codes. This is required for testing only to provide a distributor that is not the message sender.
|
63
|
+
*/
|
64
|
+
function createReferral2(
|
65
|
+
NftId distributorNftId,
|
66
|
+
string memory code,
|
67
|
+
UFixed discountPercentage,
|
68
|
+
uint32 maxReferrals,
|
69
|
+
Timestamp expiryAt,
|
70
|
+
bytes memory data
|
71
|
+
)
|
72
|
+
external
|
73
|
+
virtual
|
74
|
+
returns (ReferralId referralId)
|
75
|
+
{
|
76
|
+
return _createReferral(
|
77
|
+
distributorNftId,
|
78
|
+
code,
|
79
|
+
discountPercentage,
|
80
|
+
maxReferrals,
|
81
|
+
expiryAt,
|
82
|
+
data); // data
|
83
|
+
}
|
84
|
+
|
50
85
|
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {BasicDistributionAuthorization} from "../../distribution/BasicDistributionAuthorization.sol";
|
5
|
+
import {IAccess} from "../../authorization/IAccess.sol";
|
6
|
+
import {PUBLIC_ROLE} from "../../type/RoleId.sol";
|
7
|
+
import {SimpleDistribution} from "./SimpleDistribution.sol";
|
8
|
+
|
9
|
+
contract SimpleDistributionAuthorization
|
10
|
+
is BasicDistributionAuthorization
|
11
|
+
{
|
12
|
+
constructor(string memory componentName)
|
13
|
+
BasicDistributionAuthorization(componentName)
|
14
|
+
{}
|
15
|
+
|
16
|
+
function _setupTargetAuthorizations()
|
17
|
+
internal
|
18
|
+
virtual override
|
19
|
+
{
|
20
|
+
super._setupTargetAuthorizations();
|
21
|
+
|
22
|
+
// authorize public role (open access to any account, only allows to lock target)
|
23
|
+
IAccess.FunctionInfo[] storage functions;
|
24
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
25
|
+
_authorize(functions, SimpleDistribution.approveTokenHandler.selector, "approveTokenHandler");
|
26
|
+
_authorize(functions, SimpleDistribution.setWallet.selector, "setWallet");
|
27
|
+
}
|
28
|
+
}
|
@@ -32,7 +32,7 @@ contract SimpleOracle is
|
|
32
32
|
|
33
33
|
constructor(
|
34
34
|
address registry,
|
35
|
-
NftId
|
35
|
+
NftId productNftId,
|
36
36
|
IAuthorization authorization,
|
37
37
|
address initialOwner,
|
38
38
|
address token
|
@@ -40,7 +40,7 @@ contract SimpleOracle is
|
|
40
40
|
{
|
41
41
|
initialize(
|
42
42
|
registry,
|
43
|
-
|
43
|
+
productNftId,
|
44
44
|
authorization,
|
45
45
|
initialOwner,
|
46
46
|
"SimpleOracle",
|
@@ -50,7 +50,7 @@ contract SimpleOracle is
|
|
50
50
|
|
51
51
|
function initialize(
|
52
52
|
address registry,
|
53
|
-
NftId
|
53
|
+
NftId productNftId,
|
54
54
|
IAuthorization authorization,
|
55
55
|
address initialOwner,
|
56
56
|
string memory name,
|
@@ -62,7 +62,7 @@ contract SimpleOracle is
|
|
62
62
|
{
|
63
63
|
_initializeBasicOracle(
|
64
64
|
registry,
|
65
|
-
|
65
|
+
productNftId,
|
66
66
|
authorization,
|
67
67
|
initialOwner,
|
68
68
|
name,
|
@@ -1,11 +1,13 @@
|
|
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
|
+
|
4
6
|
import {Amount, AmountLib} from "../../type/Amount.sol";
|
5
7
|
import {BasicPool} from "../../pool/BasicPool.sol";
|
6
|
-
import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
|
7
8
|
import {Fee} from "../../type/Fee.sol";
|
8
9
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
10
|
+
import {IComponents} from "../../instance/module/IComponents.sol";
|
9
11
|
import {NftId} from "../../type/NftId.sol";
|
10
12
|
import {Seconds} from "../../type/Timestamp.sol";
|
11
13
|
import {UFixed} from "../../type/UFixed.sol";
|
@@ -16,25 +18,29 @@ contract SimplePool is
|
|
16
18
|
|
17
19
|
constructor(
|
18
20
|
address registry,
|
19
|
-
NftId
|
21
|
+
NftId productNftId,
|
20
22
|
address token,
|
23
|
+
IComponents.PoolInfo memory poolInfo,
|
21
24
|
IAuthorization authorization,
|
22
25
|
address initialOwner
|
23
26
|
)
|
24
27
|
{
|
25
28
|
initialize(
|
26
29
|
registry,
|
27
|
-
|
30
|
+
productNftId,
|
28
31
|
token,
|
32
|
+
poolInfo,
|
29
33
|
authorization,
|
30
34
|
initialOwner
|
31
35
|
);
|
32
36
|
}
|
33
37
|
|
38
|
+
|
34
39
|
function initialize(
|
35
40
|
address registry,
|
36
|
-
NftId
|
41
|
+
NftId productNftId,
|
37
42
|
address token,
|
43
|
+
IComponents.PoolInfo memory poolInfo,
|
38
44
|
IAuthorization authorization,
|
39
45
|
address initialOwner
|
40
46
|
)
|
@@ -44,13 +50,15 @@ contract SimplePool is
|
|
44
50
|
{
|
45
51
|
_initializeBasicPool(
|
46
52
|
registry,
|
47
|
-
|
48
|
-
authorization,
|
49
|
-
token,
|
53
|
+
productNftId,
|
50
54
|
"SimplePool",
|
55
|
+
token,
|
56
|
+
poolInfo,
|
57
|
+
authorization,
|
51
58
|
initialOwner);
|
52
59
|
}
|
53
60
|
|
61
|
+
|
54
62
|
function createBundle(
|
55
63
|
Fee memory fee,
|
56
64
|
uint256 initialAmount,
|
@@ -73,4 +81,26 @@ contract SimplePool is
|
|
73
81
|
netStakedAmountInt = netStakedAmount.toInt();
|
74
82
|
}
|
75
83
|
|
84
|
+
|
85
|
+
function fundPoolWallet(
|
86
|
+
Amount amount
|
87
|
+
)
|
88
|
+
external
|
89
|
+
{
|
90
|
+
_fundPoolWallet(amount);
|
91
|
+
}
|
92
|
+
|
93
|
+
|
94
|
+
function defundPoolWallet(
|
95
|
+
Amount amount
|
96
|
+
)
|
97
|
+
external
|
98
|
+
{
|
99
|
+
_defundPoolWallet(amount);
|
100
|
+
}
|
101
|
+
|
102
|
+
|
103
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
104
|
+
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
105
|
+
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
76
106
|
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
|
5
|
+
import {IAccess} from "../../authorization/IAccess.sol";
|
6
|
+
import {PUBLIC_ROLE} from "../../type/RoleId.sol";
|
7
|
+
import {SimplePool} from "./SimplePool.sol";
|
8
|
+
|
9
|
+
contract SimplePoolAuthorization
|
10
|
+
is BasicPoolAuthorization
|
11
|
+
{
|
12
|
+
constructor(string memory poolName)
|
13
|
+
BasicPoolAuthorization(poolName)
|
14
|
+
{}
|
15
|
+
|
16
|
+
function _setupTargetAuthorizations()
|
17
|
+
internal
|
18
|
+
virtual override
|
19
|
+
{
|
20
|
+
super._setupTargetAuthorizations();
|
21
|
+
|
22
|
+
// authorize public role (open access to any account, only allows to lock target)
|
23
|
+
IAccess.FunctionInfo[] storage functions;
|
24
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
25
|
+
_authorize(functions, SimplePool.approveTokenHandler.selector, "approveTokenHandler");
|
26
|
+
_authorize(functions, SimplePool.setWallet.selector, "setWallet");
|
27
|
+
}
|
28
|
+
}
|