@etherisc/gif-next 0.0.2-b8e869c-076 → 0.0.2-b95860d-028
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 +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +105 -65
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -32
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +148 -222
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +88 -186
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +174 -237
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +99 -111
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +75 -57
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +78 -31
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1551 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2090 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1484 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1244 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2108 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +48 -31
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +29 -84
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +51 -105
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +165 -138
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +446 -81
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +77 -242
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -87
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +335 -126
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +130 -204
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +71 -53
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +84 -182
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -159
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +75 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +107 -190
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +82 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +184 -185
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +120 -104
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +53 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +96 -50
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +200 -135
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +107 -177
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +296 -296
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +102 -94
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +71 -152
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -84
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +143 -200
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +288 -188
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +119 -103
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +29 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +161 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +141 -16
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +129 -70
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +29 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +257 -218
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +110 -110
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +199 -309
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +96 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +143 -200
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +65 -138
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +69 -77
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +286 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +0 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +492 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +283 -143
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +78 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -75
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +129 -221
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +63 -157
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +351 -263
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +120 -110
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +50 -28
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +321 -19
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +71 -53
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +84 -182
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +47 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +77 -29
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +83 -30
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +166 -206
- 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 +102 -87
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +71 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +71 -79
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +169 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +54 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +32 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +15 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +55 -70
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +64 -59
- package/contracts/authorization/Authorization.sol +111 -39
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -3
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +2 -1
- package/contracts/distribution/Distribution.sol +5 -15
- package/contracts/distribution/DistributionService.sol +79 -47
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionService.sol +8 -2
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +75 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +412 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/IInstance.sol +4 -1
- package/contracts/instance/IInstanceService.sol +0 -20
- package/contracts/instance/Instance.sol +21 -12
- package/contracts/instance/InstanceAdmin.sol +22 -30
- package/contracts/instance/InstanceAuthorizationV3.sol +11 -21
- package/contracts/instance/InstanceReader.sol +106 -19
- package/contracts/instance/InstanceService.sol +24 -81
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/base/ObjectLifecycle.sol +7 -1
- package/contracts/instance/module/IComponents.sol +10 -5
- package/contracts/instance/module/IPolicy.sol +23 -23
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +6 -16
- package/contracts/oracle/OracleService.sol +47 -34
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +14 -26
- package/contracts/pool/BasicPoolAuthorization.sol +0 -1
- package/contracts/pool/BundleService.sol +40 -15
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +9 -0
- package/contracts/pool/IPoolComponent.sol +18 -8
- package/contracts/pool/IPoolService.sol +24 -20
- package/contracts/pool/Pool.sol +53 -46
- package/contracts/pool/PoolService.sol +106 -122
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +13 -12
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +7 -6
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +268 -93
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IClaimService.sol +30 -7
- package/contracts/product/IPolicyService.sol +16 -20
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +23 -4
- package/contracts/product/PolicyService.sol +197 -98
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +45 -52
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +106 -61
- package/contracts/product/RiskService.sol +4 -5
- package/contracts/product/RiskServiceManager.sol +4 -4
- package/contracts/registry/ChainNft.sol +65 -36
- package/contracts/registry/IRegistry.sol +55 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +0 -1
- package/contracts/registry/Registry.sol +342 -201
- package/contracts/registry/RegistryAdmin.sol +124 -50
- package/contracts/registry/RegistryService.sol +35 -46
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +204 -188
- package/contracts/registry/ServiceAuthorizationV3.sol +16 -22
- package/contracts/shared/Component.sol +27 -19
- package/contracts/shared/ComponentService.sol +231 -137
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +23 -14
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +6 -2
- package/contracts/shared/IComponentService.sol +25 -13
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -11
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +72 -31
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +23 -7
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +19 -9
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +20 -18
- package/contracts/staking/IStaking.sol +2 -1
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -0
- package/contracts/staking/Staking.sol +8 -8
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +3 -17
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/ObjectType.sol +16 -11
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/UFixed.sol +4 -0
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +2 -1
- 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/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -8,12 +8,14 @@ import {IComponentService} from "../shared/IComponentService.sol";
|
|
8
8
|
import {IInstance} from "../instance/IInstance.sol";
|
9
9
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
10
10
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
11
12
|
import {IPoolService} from "./IPoolService.sol";
|
12
13
|
import {IRegistry} from "../registry/IRegistry.sol";
|
13
14
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
14
15
|
import {IStaking} from "../staking/IStaking.sol";
|
15
16
|
|
16
17
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
18
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
17
19
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
18
20
|
import {NftId} from "../type/NftId.sol";
|
19
21
|
import {ObjectType, POOL, BUNDLE, COMPONENT, INSTANCE, REGISTRY} from "../type/ObjectType.sol";
|
@@ -21,8 +23,7 @@ import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
|
21
23
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
22
24
|
import {KEEP_STATE} from "../type/StateId.sol";
|
23
25
|
import {Seconds} from "../type/Seconds.sol";
|
24
|
-
import {
|
25
|
-
import {UFixed} from "../type/UFixed.sol";
|
26
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
26
27
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
27
28
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
28
29
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
@@ -35,9 +36,6 @@ contract PoolService is
|
|
35
36
|
{
|
36
37
|
IBundleService internal _bundleService;
|
37
38
|
IComponentService internal _componentService;
|
38
|
-
IInstanceService private _instanceService;
|
39
|
-
IRegistryService private _registryService;
|
40
|
-
|
41
39
|
IStaking private _staking;
|
42
40
|
|
43
41
|
function _initialize(
|
@@ -45,27 +43,24 @@ contract PoolService is
|
|
45
43
|
bytes memory data
|
46
44
|
)
|
47
45
|
internal
|
48
|
-
initializer
|
49
46
|
virtual override
|
47
|
+
initializer()
|
50
48
|
{
|
51
49
|
(
|
52
|
-
address registryAddress
|
53
|
-
//address managerAddress
|
50
|
+
address registryAddress,
|
54
51
|
address authority
|
55
|
-
) = abi.decode(data, (address, address
|
52
|
+
) = abi.decode(data, (address, address));
|
56
53
|
|
57
|
-
|
54
|
+
_initializeService(registryAddress, authority, owner);
|
58
55
|
|
59
|
-
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
60
56
|
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
61
|
-
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
62
57
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
63
|
-
|
64
58
|
_staking = IStaking(getRegistry().getStakingAddress());
|
65
59
|
|
66
|
-
|
60
|
+
_registerInterface(type(IPoolService).interfaceId);
|
67
61
|
}
|
68
62
|
|
63
|
+
|
69
64
|
/// @inheritdoc IPoolService
|
70
65
|
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
71
66
|
external
|
@@ -82,93 +77,33 @@ contract PoolService is
|
|
82
77
|
emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
|
83
78
|
}
|
84
79
|
|
85
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
86
|
-
external
|
87
|
-
virtual
|
88
|
-
{
|
89
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
90
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
91
|
-
|
92
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
93
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
94
|
-
|
95
|
-
// bundle owner role may only be set once per pool
|
96
|
-
if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
|
97
|
-
revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
|
98
|
-
}
|
99
|
-
|
100
|
-
poolInfo.bundleOwnerRole = bundleOwnerRole;
|
101
|
-
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
102
|
-
|
103
|
-
emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
|
104
|
-
}
|
105
80
|
|
106
81
|
/// @inheritdoc IPoolService
|
107
82
|
function createBundle(
|
108
83
|
address bundleOwner, // initial bundle owner
|
109
84
|
Fee memory fee, // fees deducted from premium that go to bundle owner
|
110
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
111
85
|
Seconds lifetime, // initial duration for which new policies are covered
|
112
86
|
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
113
87
|
)
|
114
88
|
external
|
115
89
|
virtual
|
116
|
-
returns(NftId bundleNftId
|
90
|
+
returns(NftId bundleNftId)
|
117
91
|
{
|
118
92
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
119
93
|
|
120
|
-
|
121
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
122
|
-
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
123
|
-
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
124
|
-
if (currentPoolBalance + stakingAmount > poolInfo.maxBalanceAmount) {
|
125
|
-
revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, stakingAmount);
|
126
|
-
}
|
127
|
-
}
|
128
|
-
|
129
|
-
|
130
|
-
Amount stakingFeeAmount;
|
131
|
-
(stakingFeeAmount, netStakedAmount) = FeeLib.calculateFee(
|
132
|
-
_getStakingFee(instance.getInstanceReader(), poolNftId),
|
133
|
-
stakingAmount);
|
134
|
-
|
135
|
-
|
94
|
+
// create the empty bundle
|
136
95
|
bundleNftId = _bundleService.create(
|
137
96
|
instance,
|
138
97
|
poolNftId,
|
139
98
|
bundleOwner,
|
140
99
|
fee,
|
141
|
-
|
100
|
+
AmountLib.zero(),
|
142
101
|
lifetime,
|
143
102
|
filter);
|
144
103
|
|
145
|
-
// pool book keeping
|
146
|
-
_componentService.increasePoolBalance(
|
147
|
-
instance.getInstanceStore(),
|
148
|
-
poolNftId,
|
149
|
-
netStakedAmount,
|
150
|
-
stakingFeeAmount);
|
151
|
-
|
152
|
-
// TODO only collect staking token when pool is not externally managed
|
153
|
-
// pool bookkeeping and collect tokens from bundle owner
|
154
|
-
_collectStakingAmount(
|
155
|
-
instance.getInstanceReader(),
|
156
|
-
poolNftId,
|
157
|
-
bundleOwner,
|
158
|
-
stakingAmount);
|
159
|
-
|
160
104
|
emit LogPoolServiceBundleCreated(instance.getNftId(), poolNftId, bundleNftId);
|
161
105
|
}
|
162
106
|
|
163
|
-
function _getStakingFee(InstanceReader instanceReader, NftId poolNftId)
|
164
|
-
internal
|
165
|
-
virtual
|
166
|
-
view
|
167
|
-
returns (Fee memory stakingFee)
|
168
|
-
{
|
169
|
-
NftId productNftId = instanceReader.getComponentInfo(poolNftId).productNftId;
|
170
|
-
return instanceReader.getProductInfo(productNftId).stakingFee;
|
171
|
-
}
|
172
107
|
|
173
108
|
function closeBundle(NftId bundleNftId)
|
174
109
|
external
|
@@ -198,11 +133,45 @@ contract PoolService is
|
|
198
133
|
}
|
199
134
|
}
|
200
135
|
|
136
|
+
|
137
|
+
/// @inheritdoc IPoolService
|
138
|
+
function processFundedClaim(
|
139
|
+
NftId policyNftId,
|
140
|
+
ClaimId claimId,
|
141
|
+
Amount availableAmount
|
142
|
+
)
|
143
|
+
external
|
144
|
+
virtual
|
145
|
+
{
|
146
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
147
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
148
|
+
NftId productNftId = _getProductNftId(poolNftId);
|
149
|
+
|
150
|
+
// check policy matches with calling pool
|
151
|
+
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
152
|
+
if(policyInfo.productNftId != productNftId) {
|
153
|
+
revert ErrorPoolServicePolicyPoolMismatch(
|
154
|
+
policyNftId,
|
155
|
+
policyInfo.productNftId,
|
156
|
+
productNftId);
|
157
|
+
}
|
158
|
+
|
159
|
+
emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
|
160
|
+
|
161
|
+
// callback to product component if applicable
|
162
|
+
if (instanceReader.getProductInfo(productNftId).isProcessingFundedClaims) {
|
163
|
+
address productAddress = getRegistry().getObjectAddress(productNftId);
|
164
|
+
IProductComponent(productAddress).processFundedClaim(policyNftId, claimId, availableAmount);
|
165
|
+
}
|
166
|
+
}
|
167
|
+
|
168
|
+
|
201
169
|
/// @inheritdoc IPoolService
|
202
170
|
function stake(NftId bundleNftId, Amount amount)
|
203
171
|
external
|
204
172
|
virtual
|
205
173
|
// TODO: restricted() (once #462 is done)
|
174
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
206
175
|
returns(Amount netAmount)
|
207
176
|
{
|
208
177
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
@@ -222,13 +191,19 @@ contract PoolService is
|
|
222
191
|
}
|
223
192
|
|
224
193
|
// calculate fees
|
194
|
+
IRegistry registry = getRegistry();
|
225
195
|
Amount feeAmount;
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
196
|
+
|
197
|
+
{
|
198
|
+
NftId productNftId = registry.getObjectInfo(poolNftId).parentNftId;
|
199
|
+
Fee memory stakingFee = instanceReader.getProductInfo(productNftId).stakingFee;
|
200
|
+
(
|
201
|
+
feeAmount,
|
202
|
+
netAmount
|
203
|
+
) = FeeLib.calculateFee(
|
204
|
+
stakingFee,
|
205
|
+
amount);
|
206
|
+
}
|
232
207
|
|
233
208
|
// do all the bookkeeping
|
234
209
|
_componentService.increasePoolBalance(
|
@@ -240,7 +215,7 @@ contract PoolService is
|
|
240
215
|
_bundleService.stake(instance, bundleNftId, netAmount);
|
241
216
|
|
242
217
|
// collect tokens from bundle owner
|
243
|
-
address bundleOwner =
|
218
|
+
address bundleOwner = registry.ownerOf(bundleNftId);
|
244
219
|
emit LogPoolServiceBundleStaked(instance.getNftId(), poolNftId, bundleNftId, amount, netAmount);
|
245
220
|
|
246
221
|
// TODO only collect staking token when pool is not externally managed
|
@@ -283,14 +258,15 @@ contract PoolService is
|
|
283
258
|
AmountLib.zero());
|
284
259
|
|
285
260
|
IComponents.ComponentInfo memory poolComponentInfo = instanceReader.getComponentInfo(poolNftId);
|
286
|
-
|
261
|
+
|
287
262
|
// transfer amount to bundle owner
|
288
263
|
address owner = getRegistry().ownerOf(bundleNftId);
|
289
264
|
emit LogPoolServiceBundleUnstaked(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount);
|
290
265
|
poolComponentInfo.tokenHandler.distributeTokens(
|
291
|
-
|
266
|
+
poolComponentInfo.wallet,
|
292
267
|
owner,
|
293
268
|
unstakedAmount);
|
269
|
+
|
294
270
|
return unstakedAmount;
|
295
271
|
}
|
296
272
|
|
@@ -316,32 +292,32 @@ contract PoolService is
|
|
316
292
|
|
317
293
|
function processSale(
|
318
294
|
NftId bundleNftId,
|
319
|
-
IPolicy.
|
295
|
+
IPolicy.PremiumInfo memory premium
|
320
296
|
)
|
321
297
|
external
|
322
298
|
virtual
|
323
299
|
restricted()
|
300
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
324
301
|
{
|
325
302
|
IRegistry registry = getRegistry();
|
326
|
-
IRegistry.ObjectInfo memory
|
327
|
-
IRegistry.ObjectInfo memory
|
328
|
-
|
329
|
-
IInstance instance = IInstance(instanceObjectInfo.objectAddress);
|
303
|
+
IRegistry.ObjectInfo memory bundleInfo = registry.getObjectInfo(bundleNftId);
|
304
|
+
IRegistry.ObjectInfo memory poolInfo = registry.getObjectInfo(bundleInfo.parentNftId);
|
305
|
+
IInstance instance = _getInstanceForComponent(registry, poolInfo);
|
330
306
|
|
331
|
-
Amount poolFeeAmount =
|
332
|
-
Amount bundleFeeAmount =
|
333
|
-
Amount bundleNetAmount =
|
307
|
+
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
308
|
+
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
309
|
+
Amount bundleNetAmount = premium.netPremiumAmount;
|
334
310
|
|
335
311
|
InstanceStore instanceStore = instance.getInstanceStore();
|
336
312
|
_componentService.increasePoolBalance(
|
337
313
|
instanceStore,
|
338
|
-
|
314
|
+
poolInfo.nftId,
|
339
315
|
bundleNetAmount + bundleFeeAmount,
|
340
316
|
poolFeeAmount);
|
341
317
|
|
342
318
|
_componentService.increaseBundleBalance(
|
343
319
|
instanceStore,
|
344
|
-
|
320
|
+
bundleInfo.nftId,
|
345
321
|
bundleNetAmount,
|
346
322
|
bundleFeeAmount);
|
347
323
|
}
|
@@ -359,13 +335,13 @@ contract PoolService is
|
|
359
335
|
virtual
|
360
336
|
restricted()
|
361
337
|
returns (
|
362
|
-
Amount
|
363
|
-
Amount
|
338
|
+
Amount totalCollateralAmount,
|
339
|
+
Amount localCollateralAmount
|
364
340
|
)
|
365
341
|
{
|
366
342
|
(
|
367
|
-
|
368
|
-
|
343
|
+
totalCollateralAmount,
|
344
|
+
localCollateralAmount
|
369
345
|
) = calculateRequiredCollateral(
|
370
346
|
instance.getInstanceReader(),
|
371
347
|
productNftId,
|
@@ -383,16 +359,9 @@ contract PoolService is
|
|
383
359
|
instance.getNftId(),
|
384
360
|
token,
|
385
361
|
totalCollateralAmount);
|
386
|
-
|
387
|
-
// hierarhical riskpool setup
|
388
|
-
// TODO loop in with pool component to guarantee availability of external capital
|
389
|
-
if(totalCollateralAmount > localCollateralAmount) {
|
390
|
-
|
391
|
-
}
|
392
362
|
}
|
393
363
|
|
394
|
-
|
395
|
-
function reduceCollateral(
|
364
|
+
function processPayout(
|
396
365
|
IInstance instance,
|
397
366
|
address token,
|
398
367
|
NftId policyNftId,
|
@@ -403,6 +372,22 @@ contract PoolService is
|
|
403
372
|
virtual
|
404
373
|
restricted()
|
405
374
|
{
|
375
|
+
NftId bundleNftId = policyInfo.bundleNftId;
|
376
|
+
NftId poolNftId = getRegistry().getObjectInfo(bundleNftId).parentNftId;
|
377
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
378
|
+
|
379
|
+
_componentService.decreasePoolBalance(
|
380
|
+
instanceStore,
|
381
|
+
poolNftId,
|
382
|
+
payoutAmount,
|
383
|
+
AmountLib.zero());
|
384
|
+
|
385
|
+
_componentService.decreaseBundleBalance(
|
386
|
+
instanceStore,
|
387
|
+
bundleNftId,
|
388
|
+
payoutAmount,
|
389
|
+
AmountLib.zero());
|
390
|
+
|
406
391
|
_bundleService.releaseCollateral(
|
407
392
|
instance,
|
408
393
|
policyNftId,
|
@@ -457,16 +442,16 @@ contract PoolService is
|
|
457
442
|
public
|
458
443
|
view
|
459
444
|
returns(
|
460
|
-
Amount
|
461
|
-
Amount
|
445
|
+
Amount totalCollateralAmount,
|
446
|
+
Amount localCollateralAmount
|
462
447
|
)
|
463
448
|
{
|
464
449
|
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
465
450
|
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
466
451
|
|
467
452
|
(
|
468
|
-
|
469
|
-
|
453
|
+
totalCollateralAmount,
|
454
|
+
localCollateralAmount
|
470
455
|
) = calculateRequiredCollateral(
|
471
456
|
poolInfo.collateralizationLevel,
|
472
457
|
poolInfo.retentionLevel,
|
@@ -482,18 +467,17 @@ contract PoolService is
|
|
482
467
|
public
|
483
468
|
pure
|
484
469
|
returns(
|
485
|
-
Amount
|
486
|
-
Amount
|
470
|
+
Amount totalCollateralAmount,
|
471
|
+
Amount localCollateralAmount
|
487
472
|
)
|
488
473
|
{
|
489
|
-
//
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
//
|
494
|
-
|
495
|
-
|
496
|
-
totalCollateralAmount = localCollateralAmount;
|
474
|
+
// collateralization is applied to sum insured
|
475
|
+
UFixed totalUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
|
476
|
+
totalCollateralAmount = AmountLib.toAmount(totalUFixed.toInt());
|
477
|
+
|
478
|
+
// retention level defines how much capital is required locally
|
479
|
+
localCollateralAmount = AmountLib.toAmount(
|
480
|
+
(retentionLevel * totalUFixed).toInt());
|
497
481
|
}
|
498
482
|
|
499
483
|
|
@@ -12,14 +12,14 @@ contract PoolServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with pool service implementation
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
|
-
ProxyManager(registryAddress)
|
19
18
|
{
|
20
19
|
PoolService poolSrv = new PoolService{salt: salt}();
|
21
|
-
bytes memory data = abi.encode(
|
22
|
-
IVersionable versionable =
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
23
|
address(poolSrv),
|
24
24
|
data,
|
25
25
|
salt);
|
@@ -41,18 +41,17 @@ contract ApplicationService is
|
|
41
41
|
initializer()
|
42
42
|
{
|
43
43
|
(
|
44
|
-
address registryAddress
|
45
|
-
//address managerAddress
|
44
|
+
address registryAddress,
|
46
45
|
address authority
|
47
|
-
) = abi.decode(data, (address, address
|
46
|
+
) = abi.decode(data, (address, address));
|
48
47
|
|
49
|
-
|
48
|
+
_initializeService(registryAddress, authority, owner);
|
50
49
|
|
51
50
|
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
52
51
|
_pricingService = IPricingService(_getServiceAddress(PRICE()));
|
53
52
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
54
53
|
|
55
|
-
|
54
|
+
_registerInterface(type(IApplicationService).interfaceId);
|
56
55
|
}
|
57
56
|
|
58
57
|
|
@@ -111,8 +110,7 @@ contract ApplicationService is
|
|
111
110
|
view
|
112
111
|
returns (Amount premiumAmount)
|
113
112
|
{
|
114
|
-
return
|
115
|
-
_pricingService.calculatePremium(
|
113
|
+
return _pricingService.calculatePremium(
|
116
114
|
info.productNftId,
|
117
115
|
info.riskId,
|
118
116
|
info.sumInsuredAmount,
|
@@ -120,7 +118,7 @@ contract ApplicationService is
|
|
120
118
|
info.applicationData,
|
121
119
|
info.bundleNftId,
|
122
120
|
info.referralId
|
123
|
-
).premiumAmount
|
121
|
+
).premiumAmount;
|
124
122
|
}
|
125
123
|
|
126
124
|
|
@@ -136,6 +134,7 @@ contract ApplicationService is
|
|
136
134
|
)
|
137
135
|
external
|
138
136
|
virtual
|
137
|
+
nonReentrant()
|
139
138
|
returns (NftId applicationNftId)
|
140
139
|
{
|
141
140
|
(NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
@@ -192,7 +191,6 @@ contract ApplicationService is
|
|
192
191
|
riskId: riskId,
|
193
192
|
sumInsuredAmount: sumInsuredAmount,
|
194
193
|
premiumAmount: premiumAmount,
|
195
|
-
premiumPaidAmount: AmountLib.zero(),
|
196
194
|
lifetime: lifetime,
|
197
195
|
applicationData: applicationData,
|
198
196
|
processData: "",
|
@@ -211,7 +209,8 @@ contract ApplicationService is
|
|
211
209
|
NftId bundleNftId // will likely need a newer bundle for underwriting
|
212
210
|
)
|
213
211
|
external
|
214
|
-
virtual
|
212
|
+
virtual
|
213
|
+
nonReentrant()
|
215
214
|
returns (NftId applicationNftId)
|
216
215
|
{
|
217
216
|
// TODO implement
|
@@ -228,14 +227,16 @@ contract ApplicationService is
|
|
228
227
|
bytes memory applicationData
|
229
228
|
)
|
230
229
|
external
|
231
|
-
virtual
|
230
|
+
virtual
|
231
|
+
nonReentrant()
|
232
232
|
{
|
233
233
|
// TODO implement
|
234
234
|
}
|
235
235
|
|
236
236
|
function revoke(NftId applicationNftId)
|
237
237
|
external
|
238
|
-
virtual
|
238
|
+
virtual
|
239
|
+
nonReentrant()
|
239
240
|
{
|
240
241
|
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
241
242
|
instance.getInstanceStore().updateApplicationState(applicationNftId, REVOKED());
|
@@ -12,14 +12,14 @@ contract ApplicationServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with service implementation
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
|
-
ProxyManager(registryAddress)
|
19
18
|
{
|
20
19
|
ApplicationService svc = new ApplicationService{salt: salt}();
|
21
|
-
bytes memory data = abi.encode(
|
22
|
-
IVersionable versionable =
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
23
|
address(svc),
|
24
24
|
data,
|
25
25
|
salt);
|
@@ -21,6 +21,7 @@ abstract contract BasicProduct is
|
|
21
21
|
{
|
22
22
|
_setFees(productFee, processingFee);
|
23
23
|
}
|
24
|
+
|
24
25
|
function _initializeBasicProduct(
|
25
26
|
address registry,
|
26
27
|
NftId instanceNftId,
|
@@ -29,8 +30,8 @@ abstract contract BasicProduct is
|
|
29
30
|
string memory name,
|
30
31
|
address token,
|
31
32
|
bool isInterceptor,
|
32
|
-
|
33
|
-
|
33
|
+
bool hasDistribution,
|
34
|
+
uint8 numberOfOracles
|
34
35
|
)
|
35
36
|
internal
|
36
37
|
virtual
|
@@ -44,9 +45,9 @@ abstract contract BasicProduct is
|
|
44
45
|
name,
|
45
46
|
token,
|
46
47
|
isInterceptor,
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
""); //
|
48
|
+
false, // is processing funded claims
|
49
|
+
hasDistribution,
|
50
|
+
numberOfOracles,
|
51
|
+
""); // component data
|
51
52
|
}
|
52
53
|
}
|
@@ -36,7 +36,6 @@ contract BasicProductAuthorization
|
|
36
36
|
// authorize public role (open access to any account, only allows to lock target)
|
37
37
|
functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
|
38
38
|
_authorize(functions, BasicProduct.setFees.selector, "setFees");
|
39
|
-
|
40
39
|
_authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
|
41
40
|
}
|
42
41
|
}
|