@etherisc/gif-next 0.0.2-c5049d4-401 → 0.0.2-c554b1e-622
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 +505 -245
- 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/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +273 -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 +396 -185
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +139 -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 +194 -214
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +261 -27
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +132 -128
- 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 +119 -110
- 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/DamageLevel.sol/DamageLevelLib.json +2 -2
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +197 -185
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +261 -27
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +415 -319
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +258 -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 +278 -166
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +175 -151
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +321 -183
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +787 -333
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -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 +218 -39
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +140 -95
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +260 -61
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +734 -321
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +205 -90
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +834 -221
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +166 -171
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +69 -49
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +498 -347
- 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 +151 -171
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +243 -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 +113 -104
- 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 +127 -123
- 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 +146 -142
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +261 -27
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +156 -262
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +79 -81
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -111
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +133 -135
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +279 -247
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +146 -153
- 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 +490 -390
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +133 -51
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +163 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +77 -39
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +260 -195
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +261 -27
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +308 -158
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +106 -72
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +110 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +199 -21
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +168 -54
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +105 -52
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +246 -176
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +65 -6
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +264 -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 +181 -116
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +89 -51
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +256 -191
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +138 -67
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +88 -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 +117 -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 +161 -53
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +600 -440
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -185
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +68 -34
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -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 +417 -249
- 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 -83
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +473 -514
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +94 -76
- 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 +509 -4
- 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 -65
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +431 -284
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +113 -104
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +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/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +126 -122
- 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 +3 -3
- 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 +172 -98
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +148 -16
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +267 -178
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +96 -50
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +31 -63
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +199 -55
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +77 -39
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +185 -130
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +33 -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 +33 -9
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +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 +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +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 +16 -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 +101 -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 +342 -230
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +350 -202
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +69 -34
- package/contracts/authorization/IAuthorization.sol +33 -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 +128 -79
- 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/DamageLevel.sol +5 -2
- package/contracts/examples/fire/FirePool.sol +25 -10
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +106 -59
- package/contracts/examples/fire/FireProductAuthorization.sol +14 -8
- 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 +59 -17
- package/contracts/instance/IInstanceService.sol +22 -30
- package/contracts/instance/Instance.sol +108 -41
- package/contracts/instance/InstanceAdmin.sol +287 -122
- package/contracts/instance/InstanceAuthorizationV3.sol +90 -59
- package/contracts/instance/InstanceReader.sol +259 -39
- package/contracts/instance/InstanceService.sol +178 -182
- 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 +13 -8
- package/contracts/instance/module/IDistribution.sol +5 -2
- package/contracts/instance/module/IPolicy.sol +4 -3
- 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 +108 -79
- 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 -131
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +15 -34
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +70 -65
- package/contracts/pool/Pool.sol +136 -117
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +483 -234
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +41 -19
- 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 +246 -160
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +6 -2
- package/contracts/product/IClaimService.sol +17 -4
- package/contracts/product/IPolicyService.sol +27 -9
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +27 -4
- package/contracts/product/IRiskService.sol +5 -8
- package/contracts/product/PolicyService.sol +262 -249
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +30 -26
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +119 -75
- package/contracts/product/RiskService.sol +79 -31
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +10 -11
- package/contracts/registry/IRegistry.sol +16 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +36 -8
- package/contracts/registry/RegistryAdmin.sol +145 -351
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +36 -47
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +271 -245
- package/contracts/registry/ServiceAuthorizationV3.sol +182 -50
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +69 -110
- package/contracts/shared/ComponentService.sol +421 -373
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +27 -16
- package/contracts/shared/ContractLib.sol +246 -3
- package/contracts/shared/IComponent.sol +8 -17
- package/contracts/shared/IComponentService.sol +40 -38
- 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/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +69 -44
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +27 -7
- package/contracts/shared/PolicyHolder.sol +5 -1
- package/contracts/shared/Registerable.sol +50 -19
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +9 -31
- package/contracts/shared/TokenHandler.sol +275 -72
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +17 -10
- package/contracts/staking/IStakingService.sol +16 -4
- package/contracts/staking/Staking.sol +95 -47
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +18 -21
- package/contracts/staking/StakingService.sol +81 -24
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +2 -1
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +54 -35
- package/contracts/type/PayoutId.sol +10 -10
- 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 +13 -119
- package/contracts/type/Version.sol +54 -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/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- 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
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -1,28 +1,32 @@
|
|
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
|
-
import {DamageLevel,
|
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";
|
17
|
+
import {POLICY, BUNDLE} from "../../type/ObjectType.sol";
|
13
18
|
import {ReferralLib} from "../../type/Referral.sol";
|
14
19
|
import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
|
15
20
|
import {Seconds} from "../../type/Seconds.sol";
|
16
|
-
import {StateId} from "../../type/StateId.sol";
|
17
21
|
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
18
22
|
import {UFixed, UFixedLib} from "../../type/UFixed.sol";
|
19
23
|
|
20
|
-
|
21
|
-
|
24
|
+
// solhint-disable-next-line func-name-mixedcase
|
22
25
|
function HALF_YEAR() pure returns (Seconds) {
|
23
26
|
return Seconds.wrap(180 * 86400);
|
24
27
|
}
|
25
28
|
|
29
|
+
// solhint-disable-next-line func-name-mixedcase
|
26
30
|
function ONE_YEAR() pure returns (Seconds) {
|
27
31
|
return Seconds.wrap(360 * 86400);
|
28
32
|
}
|
@@ -41,21 +45,22 @@ contract FireProduct is
|
|
41
45
|
}
|
42
46
|
|
43
47
|
error ErrorFireProductCityUnknown(string cityName);
|
44
|
-
error
|
48
|
+
error ErrorFireProductTimestampInFuture();
|
45
49
|
error ErrorFireProductFireAlreadyReported();
|
46
50
|
error ErrorFireProductAlreadyClaimed();
|
47
|
-
error ErrorFireProductPolicyNotActive();
|
48
|
-
error ErrorFireProductPolicyNotYetActive(Timestamp activateAt);
|
49
|
-
error ErrorFireProductPolicyExpired(Timestamp expiredAt);
|
51
|
+
error ErrorFireProductPolicyNotActive(NftId policyNftId);
|
52
|
+
error ErrorFireProductPolicyNotYetActive(NftId policyNftId, Timestamp activateAt);
|
53
|
+
error ErrorFireProductPolicyExpired(NftId policyNftId, Timestamp expiredAt);
|
50
54
|
error ErrorFireProductUnknownDamageLevel(DamageLevel damageLevel);
|
51
55
|
error ErrorFireProductFireUnknown(uint256 fireId);
|
52
56
|
error ErrorFireProductNotPolicyOwner(NftId nftId, address owner);
|
57
|
+
error ErrorFireProductFireNotInCoveredCity(uint256 fireId, string cityName);
|
53
58
|
|
54
59
|
string[] private _cities;
|
55
60
|
// map from city name to the RiskId
|
56
61
|
mapping(string cityName => RiskId risk) private _riskMapping;
|
57
62
|
|
58
|
-
//
|
63
|
+
// map from city name to the damage level and the time of the report
|
59
64
|
mapping(uint256 fireId => Fire) private _fires;
|
60
65
|
mapping(uint256 fireId => mapping (NftId policyId => bool claimed)) private _claimed;
|
61
66
|
|
@@ -64,27 +69,25 @@ contract FireProduct is
|
|
64
69
|
NftId instanceNftid,
|
65
70
|
string memory componentName,
|
66
71
|
address token,
|
67
|
-
address pool,
|
68
72
|
IAuthorization authorization
|
69
73
|
)
|
70
74
|
{
|
71
75
|
address initialOwner = msg.sender;
|
76
|
+
|
72
77
|
_initialize(
|
73
78
|
registry,
|
74
79
|
instanceNftid,
|
75
80
|
componentName,
|
76
81
|
token,
|
77
|
-
pool,
|
78
82
|
authorization,
|
79
83
|
initialOwner);
|
80
84
|
}
|
81
85
|
|
82
86
|
function _initialize(
|
83
87
|
address registry,
|
84
|
-
NftId
|
88
|
+
NftId instanceNftId,
|
85
89
|
string memory componentName,
|
86
90
|
address token,
|
87
|
-
address pool,
|
88
91
|
IAuthorization authorization,
|
89
92
|
address initialOwner
|
90
93
|
)
|
@@ -93,14 +96,30 @@ contract FireProduct is
|
|
93
96
|
{
|
94
97
|
_initializeBasicProduct(
|
95
98
|
registry,
|
96
|
-
|
97
|
-
authorization,
|
98
|
-
initialOwner,
|
99
|
+
instanceNftId,
|
99
100
|
componentName,
|
100
101
|
token,
|
101
|
-
|
102
|
-
|
103
|
-
|
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
|
104
123
|
}
|
105
124
|
|
106
125
|
function cities() public view returns (uint256) {
|
@@ -155,15 +174,16 @@ contract FireProduct is
|
|
155
174
|
)
|
156
175
|
public
|
157
176
|
view
|
177
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
158
178
|
returns (Amount premiumAmount)
|
159
179
|
{
|
160
|
-
RiskId
|
161
|
-
if (
|
180
|
+
RiskId risk = _riskMapping[cityName];
|
181
|
+
if (risk.eqz()) {
|
162
182
|
revert ErrorFireProductCityUnknown(cityName);
|
163
183
|
}
|
164
184
|
premiumAmount = calculatePremium(
|
165
185
|
sumInsured,
|
166
|
-
|
186
|
+
risk,
|
167
187
|
lifetime,
|
168
188
|
"",
|
169
189
|
bundleNftId,
|
@@ -196,14 +216,15 @@ contract FireProduct is
|
|
196
216
|
)
|
197
217
|
public
|
198
218
|
restricted()
|
219
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
199
220
|
returns (NftId policyNftId)
|
200
221
|
{
|
201
222
|
address applicationOwner = msg.sender;
|
202
|
-
RiskId
|
223
|
+
RiskId risk = initializeCity(cityName);
|
203
224
|
|
204
225
|
Amount premiumAmount = calculatePremium(
|
205
226
|
sumInsured,
|
206
|
-
|
227
|
+
risk,
|
207
228
|
lifetime,
|
208
229
|
"",
|
209
230
|
bundleNftId,
|
@@ -211,7 +232,7 @@ contract FireProduct is
|
|
211
232
|
|
212
233
|
return _createApplication(
|
213
234
|
applicationOwner,
|
214
|
-
|
235
|
+
risk,
|
215
236
|
sumInsured,
|
216
237
|
premiumAmount,
|
217
238
|
lifetime,
|
@@ -225,15 +246,14 @@ contract FireProduct is
|
|
225
246
|
string memory cityName
|
226
247
|
)
|
227
248
|
public
|
228
|
-
returns (RiskId
|
249
|
+
returns (RiskId risk)
|
229
250
|
{
|
230
251
|
if (! _riskMapping[cityName].eqz()) {
|
231
252
|
return _riskMapping[cityName];
|
232
253
|
}
|
233
254
|
_cities.push(cityName);
|
234
|
-
|
235
|
-
|
236
|
-
_riskMapping[cityName] = riskId;
|
255
|
+
risk = _createRisk(bytes32(abi.encodePacked(cityName)), "");
|
256
|
+
_riskMapping[cityName] = risk;
|
237
257
|
}
|
238
258
|
|
239
259
|
/// @dev Calling this method will lock the sum insured amount in the pool and activate the policy at the given time.
|
@@ -244,6 +264,8 @@ contract FireProduct is
|
|
244
264
|
)
|
245
265
|
public
|
246
266
|
restricted()
|
267
|
+
onlyOwner()
|
268
|
+
onlyNftOfType(policyNftId, POLICY())
|
247
269
|
{
|
248
270
|
_createPolicy(policyNftId, activateAt);
|
249
271
|
_collectPremium(policyNftId, activateAt);
|
@@ -255,6 +277,8 @@ contract FireProduct is
|
|
255
277
|
)
|
256
278
|
public
|
257
279
|
restricted()
|
280
|
+
onlyOwner()
|
281
|
+
onlyNftOfType(policyNftId, POLICY())
|
258
282
|
{
|
259
283
|
_decline(policyNftId);
|
260
284
|
}
|
@@ -265,6 +289,8 @@ contract FireProduct is
|
|
265
289
|
)
|
266
290
|
public
|
267
291
|
restricted()
|
292
|
+
onlyOwner()
|
293
|
+
onlyNftOfType(policyNftId, POLICY())
|
268
294
|
returns (Timestamp)
|
269
295
|
{
|
270
296
|
return _expire(policyNftId, expireAt);
|
@@ -275,6 +301,8 @@ contract FireProduct is
|
|
275
301
|
)
|
276
302
|
public
|
277
303
|
restricted()
|
304
|
+
onlyOwner()
|
305
|
+
onlyNftOfType(policyNftId, POLICY())
|
278
306
|
{
|
279
307
|
_close(policyNftId);
|
280
308
|
}
|
@@ -292,8 +320,8 @@ contract FireProduct is
|
|
292
320
|
revert ErrorFireProductCityUnknown(cityName);
|
293
321
|
}
|
294
322
|
|
295
|
-
if (reportedAt
|
296
|
-
revert
|
323
|
+
if (reportedAt > TimestampLib.blockTimestamp()) {
|
324
|
+
revert ErrorFireProductTimestampInFuture();
|
297
325
|
}
|
298
326
|
|
299
327
|
if (! _fires[fireId].reportedAt.eqz()) {
|
@@ -318,16 +346,18 @@ contract FireProduct is
|
|
318
346
|
public
|
319
347
|
restricted()
|
320
348
|
onlyNftOwner(policyNftId)
|
349
|
+
onlyNftOfType(policyNftId, POLICY())
|
321
350
|
returns (ClaimId claimId, PayoutId payoutId)
|
322
351
|
{
|
323
352
|
IPolicy.PolicyInfo memory policyInfo = _getInstanceReader().getPolicyInfo(policyNftId);
|
324
|
-
_checkClaimConditions(policyNftId,
|
353
|
+
_checkClaimConditions(policyNftId, policyInfo, fireId);
|
325
354
|
|
326
|
-
Fire memory
|
355
|
+
Fire memory theFire = _fires[fireId];
|
327
356
|
_claimed[fireId][policyNftId] = true;
|
328
|
-
|
357
|
+
|
358
|
+
Amount claimAmount = _getClaimAmount(policyNftId, policyInfo.sumInsuredAmount, theFire.damageLevel);
|
329
359
|
|
330
|
-
claimId = _submitClaim(policyNftId, claimAmount,
|
360
|
+
claimId = _submitClaim(policyNftId, claimAmount, abi.encodePacked(fireId));
|
331
361
|
_confirmClaim(policyNftId, claimId, claimAmount, "");
|
332
362
|
|
333
363
|
payoutId = _createPayout(policyNftId, claimId, claimAmount, "");
|
@@ -336,55 +366,72 @@ contract FireProduct is
|
|
336
366
|
|
337
367
|
function _checkClaimConditions(
|
338
368
|
NftId policyNftId,
|
339
|
-
|
340
|
-
|
369
|
+
IPolicy.PolicyInfo memory policyInfo,
|
370
|
+
uint256 fireId
|
341
371
|
)
|
342
372
|
internal
|
373
|
+
view
|
343
374
|
{
|
344
375
|
// check fire exists
|
345
376
|
if (_fires[fireId].reportedAt.eqz()) {
|
346
377
|
revert ErrorFireProductFireUnknown(fireId);
|
347
378
|
}
|
348
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
|
+
|
349
385
|
// check policy has not been claimed yet for this fire
|
350
386
|
if (_claimed[fireId][policyNftId]) {
|
351
387
|
revert ErrorFireProductAlreadyClaimed();
|
352
388
|
}
|
353
389
|
|
354
|
-
|
355
|
-
|
356
|
-
if (! policyState.eq(COLLATERALIZED())) {
|
357
|
-
revert ErrorFireProductPolicyNotActive();
|
358
|
-
}
|
359
|
-
|
360
|
-
Fire memory fire = _fires[fireId];
|
390
|
+
Fire memory theFire = _fires[fireId];
|
361
391
|
|
362
|
-
|
363
|
-
|
392
|
+
// check fire is during policy lifetime
|
393
|
+
if (theFire.reportedAt < policyInfo.activatedAt) {
|
394
|
+
revert ErrorFireProductPolicyNotYetActive(policyNftId, policyInfo.activatedAt);
|
364
395
|
}
|
365
396
|
|
366
|
-
if (
|
367
|
-
revert ErrorFireProductPolicyExpired(policyInfo.expiredAt);
|
397
|
+
if (theFire.reportedAt >= policyInfo.expiredAt) {
|
398
|
+
revert ErrorFireProductPolicyExpired(policyNftId, policyInfo.expiredAt);
|
368
399
|
}
|
369
400
|
}
|
370
401
|
|
371
402
|
function _getClaimAmount(
|
372
|
-
|
373
|
-
|
403
|
+
NftId policyNftId,
|
404
|
+
Amount sumInsured,
|
405
|
+
DamageLevel damageLevel
|
374
406
|
)
|
375
407
|
internal
|
376
408
|
view
|
377
409
|
returns (Amount)
|
378
410
|
{
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
return
|
411
|
+
Amount claimAmount = sumInsured.multiplyWith(_damageLevelToPayoutPercentage(damageLevel));
|
412
|
+
Amount maxPayoutRemaining = _getInstanceReader().getRemainingClaimableAmount(policyNftId);
|
413
|
+
|
414
|
+
// if payout is higher than the remaining maximum payout, then claim what is remaining
|
415
|
+
if (maxPayoutRemaining < claimAmount) {
|
416
|
+
return maxPayoutRemaining;
|
417
|
+
}
|
418
|
+
|
419
|
+
return claimAmount;
|
420
|
+
}
|
421
|
+
|
422
|
+
function _damageLevelToPayoutPercentage(DamageLevel damageLevel) internal pure returns (UFixed) {
|
423
|
+
if (damageLevel.eq(DAMAGE_SMALL())) {
|
424
|
+
return UFixedLib.toUFixed(25, -2);
|
425
|
+
} else if (damageLevel.eq(DAMAGE_MEDIUM())) {
|
426
|
+
return UFixedLib.toUFixed(5, -1);
|
427
|
+
} else if (damageLevel.eq(DAMAGE_LARGE())) {
|
428
|
+
return UFixedLib.toUFixed(1);
|
385
429
|
} else {
|
386
|
-
revert ErrorFireProductUnknownDamageLevel(
|
430
|
+
revert ErrorFireProductUnknownDamageLevel(damageLevel);
|
387
431
|
}
|
388
432
|
}
|
389
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); }
|
390
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,15 +23,21 @@ 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
|
+
// fully public functions
|
28
|
+
_authorize(functions, FireProduct.approveTokenHandler.selector, "approveTokenHandler");
|
27
29
|
_authorize(functions, FireProduct.createApplication.selector, "createApplication");
|
28
|
-
|
30
|
+
|
31
|
+
// only owner
|
32
|
+
_authorize(functions, FireProduct.createPolicy.selector, "createPolicy");
|
33
|
+
_authorize(functions, FireProduct.decline.selector, "decline");
|
34
|
+
_authorize(functions, FireProduct.expire.selector, "expire");
|
35
|
+
_authorize(functions, FireProduct.close.selector, "close");
|
29
36
|
|
30
|
-
|
31
|
-
_authorize(functions, FireProduct.
|
32
|
-
|
33
|
-
|
34
|
-
_authorize(functions, FireProduct.close.selector, "close");
|
37
|
+
// only policy nft owner
|
38
|
+
_authorize(functions, FireProduct.submitClaim.selector, "submitClaim");
|
39
|
+
|
40
|
+
// TODO: add custom role for fire reporter
|
35
41
|
_authorize(functions, FireProduct.reportFire.selector, "reportFire");
|
36
42
|
}
|
37
43
|
|
@@ -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
|
+
}
|