@etherisc/gif-next 0.0.2-b9366f5-670 → 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 +125 -198
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +99 -107
- 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 +29 -0
- 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 +280 -72
- 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 +189 -98
- 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 +103 -186
- 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 +178 -187
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +117 -105
- 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 +92 -46
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +200 -115
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +103 -173
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +308 -264
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +108 -88
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +71 -144
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -80
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +140 -197
- 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 +194 -200
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +116 -104
- 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 +64 -8
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +140 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +80 -51
- 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 +252 -166
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +107 -91
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +154 -219
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +87 -91
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +140 -197
- 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 +285 -33
- 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 +491 -94
- 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 +50 -28
- 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 +2 -2
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +133 -207
- 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 +99 -88
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
- 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 +144 -103
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- 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/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/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 +61 -43
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- 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/{example_components → examples}/unpermissioned/SimpleDistribution.sol +4 -4
- package/contracts/{example_components → examples}/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/{example_components → examples}/unpermissioned/SimplePool.sol +4 -4
- package/contracts/{example_components → examples}/unpermissioned/SimpleProduct.sol +10 -10
- 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 +9 -19
- package/contracts/instance/InstanceReader.sol +83 -18
- package/contracts/instance/InstanceService.sol +19 -76
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/module/IComponents.sol +9 -4
- package/contracts/instance/module/IPolicy.sol +2 -2
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +5 -16
- package/contracts/oracle/OracleService.sol +47 -35
- 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 +32 -9
- 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 +21 -14
- package/contracts/pool/Pool.sol +39 -30
- package/contracts/pool/PoolService.sol +99 -83
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +11 -8
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +6 -6
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +190 -86
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IClaimService.sol +3 -2
- package/contracts/product/IPolicyService.sol +10 -3
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +23 -3
- package/contracts/product/PolicyService.sol +145 -35
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +8 -12
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +83 -53
- 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 +54 -17
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +0 -1
- package/contracts/registry/Registry.sol +341 -200
- 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 +203 -187
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -19
- package/contracts/shared/Component.sol +26 -18
- package/contracts/shared/ComponentService.sol +230 -136
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +22 -13
- 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 +71 -30
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +22 -6
- 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/IStakingService.sol +0 -3
- package/contracts/staking/Staking.sol +5 -6
- 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/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/ObjectType.sol +1 -0
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/StateId.sol +14 -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/example_components/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +0 -4
- package/artifacts/contracts/example_components/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +0 -1558
- package/artifacts/contracts/example_components/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +0 -4
- package/artifacts/contracts/example_components/unpermissioned/SimpleOracle.sol/SimpleOracle.json +0 -1318
- package/artifacts/contracts/example_components/unpermissioned/SimplePool.sol/SimplePool.dbg.json +0 -4
- package/artifacts/contracts/example_components/unpermissioned/SimplePool.sol/SimplePool.json +0 -1664
- package/artifacts/contracts/example_components/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +0 -4
- package/artifacts/contracts/example_components/unpermissioned/SimpleProduct.sol/SimpleProduct.json +0 -2125
- 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
@@ -2,14 +2,15 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
5
6
|
import {Fee} from "../type/Fee.sol";
|
6
|
-
import {NftId} from "../type/NftId.sol";
|
7
|
-
import {PayoutId} from "../type/PayoutId.sol";
|
8
7
|
import {IBundle} from "../instance/module/IBundle.sol";
|
9
8
|
import {IInstance} from "../instance/IInstance.sol";
|
10
9
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
11
10
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
12
11
|
import {IService} from "../shared/IService.sol";
|
12
|
+
import {NftId} from "../type/NftId.sol";
|
13
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
13
14
|
import {RoleId} from "../type/RoleId.sol";
|
14
15
|
import {Seconds} from "../type/Seconds.sol";
|
15
16
|
import {StateId} from "../type/StateId.sol";
|
@@ -26,14 +27,13 @@ interface IPoolService is IService {
|
|
26
27
|
event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
27
28
|
event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount);
|
28
29
|
|
30
|
+
event LogPoolServiceProcessFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount);
|
31
|
+
|
32
|
+
error ErrorPoolServicePolicyPoolMismatch(NftId policyNftId, NftId productNftId, NftId expectedProductNftId);
|
29
33
|
error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
|
30
34
|
error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
|
31
35
|
error ErrorPoolServiceBundlePoolMismatch(NftId bundleNftId, NftId poolNftId);
|
32
36
|
error ErrorPoolServiceMaxBalanceAmountExceeded(NftId poolNftId, Amount maxBalanceAmount, Amount currentBalanceAmount, Amount transferAmount);
|
33
|
-
|
34
|
-
/// @dev defines the required role for bundle owners for the calling pool
|
35
|
-
/// default implementation returns PUBLIC ROLE
|
36
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole) external;
|
37
37
|
|
38
38
|
/// @dev sets the max balance amount for the calling pool
|
39
39
|
function setMaxBalanceAmount(Amount maxBalanceAmount) external;
|
@@ -68,10 +68,10 @@ interface IPoolService is IService {
|
|
68
68
|
) external;
|
69
69
|
|
70
70
|
|
71
|
-
/// @dev reduces the locked collateral in the bundle associated with the specified policy
|
71
|
+
/// @dev reduces the locked collateral in the bundle associated with the specified policy and updates pool/bundle counters
|
72
72
|
/// every payout of a policy reduces the collateral by the payout amount
|
73
73
|
/// may only be called by the claim service for unlocked pool components
|
74
|
-
function
|
74
|
+
function processPayout(
|
75
75
|
IInstance instance,
|
76
76
|
address token,
|
77
77
|
NftId policyNftId,
|
@@ -112,6 +112,11 @@ interface IPoolService is IService {
|
|
112
112
|
function closeBundle(NftId bundleNftId) external;
|
113
113
|
|
114
114
|
|
115
|
+
/// @dev Informs product about available funds to process a confirmed claim.
|
116
|
+
/// The function triggers a callback to the product component when the product's property isProcessingFundedClaims is set.
|
117
|
+
function processFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount) external;
|
118
|
+
|
119
|
+
|
115
120
|
/// @dev Fund the specified pool wallet with the provided amount.
|
116
121
|
/// This function will collect the amount from the sender address and transfers it to the pool wallet.
|
117
122
|
/// The function will not update balance amounts managed by the framework.
|
@@ -130,7 +135,7 @@ interface IPoolService is IService {
|
|
130
135
|
function processSale(NftId bundleNftId, IPolicy.PremiumInfo memory premium) external;
|
131
136
|
|
132
137
|
|
133
|
-
/// @dev
|
138
|
+
/// @dev Calulate required collateral for the provided parameters.
|
134
139
|
function calculateRequiredCollateral(
|
135
140
|
InstanceReader instanceReader,
|
136
141
|
NftId productNftId,
|
@@ -139,12 +144,14 @@ interface IPoolService is IService {
|
|
139
144
|
external
|
140
145
|
view
|
141
146
|
returns(
|
142
|
-
Amount
|
143
|
-
Amount
|
147
|
+
Amount totalCollateralAmount,
|
148
|
+
Amount localCollateralAmount
|
144
149
|
);
|
145
150
|
|
146
151
|
|
147
|
-
/// @dev calulate required collateral for the provided parameters
|
152
|
+
/// @dev calulate required collateral for the provided parameters.
|
153
|
+
/// Collateralization is applied to sum insured.
|
154
|
+
/// Retention level defines the fraction of the collateral that is required locally.
|
148
155
|
function calculateRequiredCollateral(
|
149
156
|
UFixed collateralizationLevel,
|
150
157
|
UFixed retentionLevel,
|
@@ -153,8 +160,8 @@ interface IPoolService is IService {
|
|
153
160
|
external
|
154
161
|
pure
|
155
162
|
returns(
|
156
|
-
Amount
|
157
|
-
Amount
|
163
|
+
Amount totalCollateralAmount,
|
164
|
+
Amount localCollateralAmount
|
158
165
|
);
|
159
166
|
|
160
167
|
}
|
package/contracts/pool/Pool.sol
CHANGED
@@ -2,7 +2,8 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
|
-
import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
|
5
|
+
import {BUNDLE, COMPONENT, POLICY, POOL} from "../type/ObjectType.sol";
|
6
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
6
7
|
import {IBundleService} from "./IBundleService.sol";
|
7
8
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
9
|
import {IPoolComponent} from "./IPoolComponent.sol";
|
@@ -10,13 +11,12 @@ import {IPoolService} from "./IPoolService.sol";
|
|
10
11
|
import {IComponents} from "../instance/module/IComponents.sol";
|
11
12
|
import {IComponentService} from "../shared/IComponentService.sol";
|
12
13
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
13
|
-
import {Fee
|
14
|
-
import {NftId
|
14
|
+
import {Fee} from "../type/Fee.sol";
|
15
|
+
import {NftId} from "../type/NftId.sol";
|
15
16
|
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
16
17
|
import {Seconds} from "../type/Seconds.sol";
|
17
18
|
import {Timestamp} from "../type/Timestamp.sol";
|
18
|
-
import {
|
19
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
19
|
+
import {UFixedLib} from "../type/UFixed.sol";
|
20
20
|
|
21
21
|
abstract contract Pool is
|
22
22
|
InstanceLinkedComponent,
|
@@ -51,6 +51,7 @@ abstract contract Pool is
|
|
51
51
|
public
|
52
52
|
virtual
|
53
53
|
restricted()
|
54
|
+
onlyNftOfType(applicationNftId, POLICY())
|
54
55
|
{
|
55
56
|
if(!applicationMatchesBundle(
|
56
57
|
applicationNftId,
|
@@ -67,6 +68,21 @@ abstract contract Pool is
|
|
67
68
|
}
|
68
69
|
|
69
70
|
|
71
|
+
/// @dev see {IPoolComponent.processConfirmedClaim}
|
72
|
+
function processConfirmedClaim(
|
73
|
+
NftId policyNftId,
|
74
|
+
ClaimId claimId,
|
75
|
+
Amount amount
|
76
|
+
)
|
77
|
+
public
|
78
|
+
virtual
|
79
|
+
restricted()
|
80
|
+
onlyNftOfType(policyNftId, POLICY())
|
81
|
+
{
|
82
|
+
// default implementation is empty
|
83
|
+
}
|
84
|
+
|
85
|
+
|
70
86
|
/// @dev see {IPoolComponent.applicationMatchesBundle}
|
71
87
|
/// Override this function to implement any custom application verification
|
72
88
|
/// Default implementation always returns true
|
@@ -80,27 +96,20 @@ abstract contract Pool is
|
|
80
96
|
public
|
81
97
|
virtual
|
82
98
|
view
|
99
|
+
onlyNftOfType(applicationNftId, POLICY())
|
100
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
83
101
|
returns (bool isMatching)
|
84
102
|
{
|
85
103
|
return true;
|
86
104
|
}
|
87
105
|
|
88
|
-
|
89
|
-
function register()
|
90
|
-
external
|
91
|
-
virtual
|
92
|
-
onlyOwner()
|
93
|
-
{
|
94
|
-
_getPoolStorage()._componentService.registerPool();
|
95
|
-
_approveTokenHandler(type(uint256).max);
|
96
|
-
}
|
97
|
-
|
98
106
|
/// @inheritdoc IPoolComponent
|
99
107
|
function withdrawBundleFees(NftId bundleNftId, Amount amount)
|
100
108
|
external
|
101
109
|
virtual
|
102
110
|
restricted()
|
103
111
|
onlyBundleOwner(bundleNftId)
|
112
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
104
113
|
returns (Amount withdrawnAmount)
|
105
114
|
{
|
106
115
|
return _withdrawBundleFees(bundleNftId, amount);
|
@@ -117,6 +126,7 @@ abstract contract Pool is
|
|
117
126
|
maxBalanceAmount: AmountLib.max(),
|
118
127
|
bundleOwnerRole: PUBLIC_ROLE(),
|
119
128
|
isInterceptingBundleTransfers: isNftInterceptor(),
|
129
|
+
isProcessingConfirmedClaims: false,
|
120
130
|
isExternallyManaged: false,
|
121
131
|
isVerifyingApplications: false,
|
122
132
|
collateralizationLevel: UFixedLib.toUFixed(1),
|
@@ -128,13 +138,12 @@ abstract contract Pool is
|
|
128
138
|
|
129
139
|
function _initializePool(
|
130
140
|
address registry,
|
131
|
-
NftId
|
141
|
+
NftId productNftId,
|
132
142
|
string memory name,
|
133
143
|
address token,
|
134
144
|
IAuthorization authorization,
|
135
145
|
bool isInterceptingNftTransfers,
|
136
146
|
address initialOwner,
|
137
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
138
147
|
bytes memory componentData // component specifidc data
|
139
148
|
)
|
140
149
|
internal
|
@@ -143,14 +152,13 @@ abstract contract Pool is
|
|
143
152
|
{
|
144
153
|
_initializeInstanceLinkedComponent(
|
145
154
|
registry,
|
146
|
-
|
155
|
+
productNftId,
|
147
156
|
name,
|
148
157
|
token,
|
149
158
|
POOL(),
|
150
159
|
authorization,
|
151
160
|
isInterceptingNftTransfers,
|
152
161
|
initialOwner,
|
153
|
-
registryData,
|
154
162
|
componentData);
|
155
163
|
|
156
164
|
PoolStorage storage $ = _getPoolStorage();
|
@@ -158,7 +166,7 @@ abstract contract Pool is
|
|
158
166
|
$._bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
159
167
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
160
168
|
|
161
|
-
|
169
|
+
_registerInterface(type(IPoolComponent).interfaceId);
|
162
170
|
}
|
163
171
|
|
164
172
|
/// @dev increases the staked tokens by the specified amount
|
@@ -260,16 +268,6 @@ abstract contract Pool is
|
|
260
268
|
_getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
|
261
269
|
}
|
262
270
|
|
263
|
-
/// @dev Sets the required role to create/own bundles.
|
264
|
-
/// May only be called once after setting up a pool.
|
265
|
-
/// May only be called by pool owner.
|
266
|
-
function _setBundleOwnerRole(RoleId bundleOwnerRole)
|
267
|
-
internal
|
268
|
-
virtual
|
269
|
-
{
|
270
|
-
_getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
|
271
|
-
}
|
272
|
-
|
273
271
|
|
274
272
|
/// @dev Update pool fees to the specified values.
|
275
273
|
/// Pool fee: are deducted from the premium amount and goes to the pool owner.
|
@@ -318,6 +316,17 @@ abstract contract Pool is
|
|
318
316
|
return _getPoolStorage()._bundleService.withdrawBundleFees(bundleNftId, amount);
|
319
317
|
}
|
320
318
|
|
319
|
+
function _processFundedClaim(
|
320
|
+
NftId policyNftId,
|
321
|
+
ClaimId claimId,
|
322
|
+
Amount availableAmount
|
323
|
+
)
|
324
|
+
internal
|
325
|
+
{
|
326
|
+
_getPoolStorage()._poolService.processFundedClaim(
|
327
|
+
policyNftId, claimId, availableAmount);
|
328
|
+
}
|
329
|
+
|
321
330
|
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
322
331
|
assembly {
|
323
332
|
$.slot := POOL_STORAGE_LOCATION_V1
|
@@ -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,7 +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 {UFixed} from "../type/UFixed.sol";
|
26
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
25
27
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
26
28
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
27
29
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
@@ -34,9 +36,6 @@ contract PoolService is
|
|
34
36
|
{
|
35
37
|
IBundleService internal _bundleService;
|
36
38
|
IComponentService internal _componentService;
|
37
|
-
IInstanceService private _instanceService;
|
38
|
-
IRegistryService private _registryService;
|
39
|
-
|
40
39
|
IStaking private _staking;
|
41
40
|
|
42
41
|
function _initialize(
|
@@ -44,27 +43,24 @@ contract PoolService is
|
|
44
43
|
bytes memory data
|
45
44
|
)
|
46
45
|
internal
|
47
|
-
initializer
|
48
46
|
virtual override
|
47
|
+
initializer()
|
49
48
|
{
|
50
49
|
(
|
51
|
-
address registryAddress
|
52
|
-
//address managerAddress
|
50
|
+
address registryAddress,
|
53
51
|
address authority
|
54
|
-
) = abi.decode(data, (address, address
|
52
|
+
) = abi.decode(data, (address, address));
|
55
53
|
|
56
|
-
|
54
|
+
_initializeService(registryAddress, authority, owner);
|
57
55
|
|
58
|
-
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
59
56
|
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
60
|
-
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
61
57
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
62
|
-
|
63
58
|
_staking = IStaking(getRegistry().getStakingAddress());
|
64
59
|
|
65
|
-
|
60
|
+
_registerInterface(type(IPoolService).interfaceId);
|
66
61
|
}
|
67
62
|
|
63
|
+
|
68
64
|
/// @inheritdoc IPoolService
|
69
65
|
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
70
66
|
external
|
@@ -81,26 +77,6 @@ contract PoolService is
|
|
81
77
|
emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
|
82
78
|
}
|
83
79
|
|
84
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
85
|
-
external
|
86
|
-
virtual
|
87
|
-
{
|
88
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
89
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
90
|
-
|
91
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
92
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
93
|
-
|
94
|
-
// bundle owner role may only be set once per pool
|
95
|
-
if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
|
96
|
-
revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
|
97
|
-
}
|
98
|
-
|
99
|
-
poolInfo.bundleOwnerRole = bundleOwnerRole;
|
100
|
-
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
101
|
-
|
102
|
-
emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
|
103
|
-
}
|
104
80
|
|
105
81
|
/// @inheritdoc IPoolService
|
106
82
|
function createBundle(
|
@@ -128,15 +104,6 @@ contract PoolService is
|
|
128
104
|
emit LogPoolServiceBundleCreated(instance.getNftId(), poolNftId, bundleNftId);
|
129
105
|
}
|
130
106
|
|
131
|
-
function _getStakingFee(InstanceReader instanceReader, NftId poolNftId)
|
132
|
-
internal
|
133
|
-
virtual
|
134
|
-
view
|
135
|
-
returns (Fee memory stakingFee)
|
136
|
-
{
|
137
|
-
NftId productNftId = instanceReader.getComponentInfo(poolNftId).productNftId;
|
138
|
-
return instanceReader.getProductInfo(productNftId).stakingFee;
|
139
|
-
}
|
140
107
|
|
141
108
|
function closeBundle(NftId bundleNftId)
|
142
109
|
external
|
@@ -166,11 +133,45 @@ contract PoolService is
|
|
166
133
|
}
|
167
134
|
}
|
168
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
|
+
|
169
169
|
/// @inheritdoc IPoolService
|
170
170
|
function stake(NftId bundleNftId, Amount amount)
|
171
171
|
external
|
172
172
|
virtual
|
173
173
|
// TODO: restricted() (once #462 is done)
|
174
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
174
175
|
returns(Amount netAmount)
|
175
176
|
{
|
176
177
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
@@ -190,13 +191,19 @@ contract PoolService is
|
|
190
191
|
}
|
191
192
|
|
192
193
|
// calculate fees
|
194
|
+
IRegistry registry = getRegistry();
|
193
195
|
Amount feeAmount;
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
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
|
+
}
|
200
207
|
|
201
208
|
// do all the bookkeeping
|
202
209
|
_componentService.increasePoolBalance(
|
@@ -208,7 +215,7 @@ contract PoolService is
|
|
208
215
|
_bundleService.stake(instance, bundleNftId, netAmount);
|
209
216
|
|
210
217
|
// collect tokens from bundle owner
|
211
|
-
address bundleOwner =
|
218
|
+
address bundleOwner = registry.ownerOf(bundleNftId);
|
212
219
|
emit LogPoolServiceBundleStaked(instance.getNftId(), poolNftId, bundleNftId, amount, netAmount);
|
213
220
|
|
214
221
|
// TODO only collect staking token when pool is not externally managed
|
@@ -251,14 +258,15 @@ contract PoolService is
|
|
251
258
|
AmountLib.zero());
|
252
259
|
|
253
260
|
IComponents.ComponentInfo memory poolComponentInfo = instanceReader.getComponentInfo(poolNftId);
|
254
|
-
|
261
|
+
|
255
262
|
// transfer amount to bundle owner
|
256
263
|
address owner = getRegistry().ownerOf(bundleNftId);
|
257
264
|
emit LogPoolServiceBundleUnstaked(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount);
|
258
265
|
poolComponentInfo.tokenHandler.distributeTokens(
|
259
|
-
|
266
|
+
poolComponentInfo.wallet,
|
260
267
|
owner,
|
261
268
|
unstakedAmount);
|
269
|
+
|
262
270
|
return unstakedAmount;
|
263
271
|
}
|
264
272
|
|
@@ -289,12 +297,12 @@ contract PoolService is
|
|
289
297
|
external
|
290
298
|
virtual
|
291
299
|
restricted()
|
300
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
292
301
|
{
|
293
302
|
IRegistry registry = getRegistry();
|
294
|
-
IRegistry.ObjectInfo memory
|
295
|
-
IRegistry.ObjectInfo memory
|
296
|
-
|
297
|
-
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);
|
298
306
|
|
299
307
|
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
300
308
|
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
@@ -303,13 +311,13 @@ contract PoolService is
|
|
303
311
|
InstanceStore instanceStore = instance.getInstanceStore();
|
304
312
|
_componentService.increasePoolBalance(
|
305
313
|
instanceStore,
|
306
|
-
|
314
|
+
poolInfo.nftId,
|
307
315
|
bundleNetAmount + bundleFeeAmount,
|
308
316
|
poolFeeAmount);
|
309
317
|
|
310
318
|
_componentService.increaseBundleBalance(
|
311
319
|
instanceStore,
|
312
|
-
|
320
|
+
bundleInfo.nftId,
|
313
321
|
bundleNetAmount,
|
314
322
|
bundleFeeAmount);
|
315
323
|
}
|
@@ -327,13 +335,13 @@ contract PoolService is
|
|
327
335
|
virtual
|
328
336
|
restricted()
|
329
337
|
returns (
|
330
|
-
Amount
|
331
|
-
Amount
|
338
|
+
Amount totalCollateralAmount,
|
339
|
+
Amount localCollateralAmount
|
332
340
|
)
|
333
341
|
{
|
334
342
|
(
|
335
|
-
|
336
|
-
|
343
|
+
totalCollateralAmount,
|
344
|
+
localCollateralAmount
|
337
345
|
) = calculateRequiredCollateral(
|
338
346
|
instance.getInstanceReader(),
|
339
347
|
productNftId,
|
@@ -351,16 +359,9 @@ contract PoolService is
|
|
351
359
|
instance.getNftId(),
|
352
360
|
token,
|
353
361
|
totalCollateralAmount);
|
354
|
-
|
355
|
-
// hierarhical riskpool setup
|
356
|
-
// TODO loop in with pool component to guarantee availability of external capital
|
357
|
-
if(totalCollateralAmount > localCollateralAmount) {
|
358
|
-
|
359
|
-
}
|
360
362
|
}
|
361
363
|
|
362
|
-
|
363
|
-
function reduceCollateral(
|
364
|
+
function processPayout(
|
364
365
|
IInstance instance,
|
365
366
|
address token,
|
366
367
|
NftId policyNftId,
|
@@ -371,6 +372,22 @@ contract PoolService is
|
|
371
372
|
virtual
|
372
373
|
restricted()
|
373
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
|
+
|
374
391
|
_bundleService.releaseCollateral(
|
375
392
|
instance,
|
376
393
|
policyNftId,
|
@@ -425,16 +442,16 @@ contract PoolService is
|
|
425
442
|
public
|
426
443
|
view
|
427
444
|
returns(
|
428
|
-
Amount
|
429
|
-
Amount
|
445
|
+
Amount totalCollateralAmount,
|
446
|
+
Amount localCollateralAmount
|
430
447
|
)
|
431
448
|
{
|
432
449
|
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
433
450
|
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
434
451
|
|
435
452
|
(
|
436
|
-
|
437
|
-
|
453
|
+
totalCollateralAmount,
|
454
|
+
localCollateralAmount
|
438
455
|
) = calculateRequiredCollateral(
|
439
456
|
poolInfo.collateralizationLevel,
|
440
457
|
poolInfo.retentionLevel,
|
@@ -450,18 +467,17 @@ contract PoolService is
|
|
450
467
|
public
|
451
468
|
pure
|
452
469
|
returns(
|
453
|
-
Amount
|
454
|
-
Amount
|
470
|
+
Amount totalCollateralAmount,
|
471
|
+
Amount localCollateralAmount
|
455
472
|
)
|
456
473
|
{
|
457
|
-
//
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
//
|
462
|
-
|
463
|
-
|
464
|
-
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());
|
465
481
|
}
|
466
482
|
|
467
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);
|