@etherisc/gif-next 0.0.2-df73b56-462 → 0.0.2-dfb8aa3-070
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/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +96 -37
- 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 -13
- 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 +154 -94
- 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 +94 -58
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +136 -86
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +80 -60
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +81 -58
- 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 +1538 -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 +2072 -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 +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +156 -96
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +137 -77
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +153 -106
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +241 -129
- 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 +53 -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 +62 -40
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +148 -118
- 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 +275 -77
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +72 -130
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +48 -40
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +175 -104
- 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 +135 -75
- 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 +76 -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 +89 -53
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +86 -47
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +48 -36
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +89 -66
- 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 +180 -82
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +90 -58
- 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 +76 -53
- 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 +89 -53
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +312 -161
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +81 -41
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +66 -32
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -33
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +145 -73
- 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 +175 -90
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +82 -58
- 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 +58 -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 +132 -73
- 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 +139 -60
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +67 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +149 -107
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +61 -45
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +145 -73
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +60 -26
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +42 -30
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +67 -15
- 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 +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +111 -51
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +193 -165
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +73 -172
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +41 -29
- 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 +121 -223
- 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 +68 -28
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +350 -155
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +83 -63
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +42 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +55 -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 +76 -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 +1 -1
- 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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +89 -53
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +18 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +3 -3
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +66 -8
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +42 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/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 +55 -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 +138 -78
- 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 +68 -42
- 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 +66 -53
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +45 -33
- 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 +28 -12
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +65 -61
- package/contracts/authorization/Authorization.sol +111 -39
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -2
- 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 +6 -16
- package/contracts/distribution/DistributionService.sol +55 -36
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +73 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +415 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -4
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +4 -4
- package/contracts/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 +20 -17
- 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 +15 -70
- package/contracts/instance/module/IComponents.sol +6 -3
- 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 +4 -15
- package/contracts/oracle/OracleService.sol +39 -29
- package/contracts/pool/BasicPool.sol +14 -26
- package/contracts/pool/BasicPoolAuthorization.sol +0 -1
- package/contracts/pool/BundleService.sol +75 -20
- package/contracts/pool/IBundleService.sol +9 -0
- package/contracts/pool/IPoolService.sol +21 -14
- package/contracts/pool/Pool.sol +22 -29
- package/contracts/pool/PoolService.sol +116 -80
- package/contracts/product/ApplicationService.sol +16 -4
- package/contracts/product/BasicProduct.sol +6 -6
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +108 -69
- package/contracts/product/IClaimService.sol +3 -2
- package/contracts/product/IPolicyService.sol +3 -0
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +23 -3
- package/contracts/product/PolicyService.sol +66 -21
- package/contracts/product/PricingService.sol +8 -8
- package/contracts/product/Product.sol +81 -52
- package/contracts/registry/ChainNft.sol +6 -9
- package/contracts/registry/IRegistry.sol +6 -3
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +21 -6
- package/contracts/registry/RegistryAdmin.sol +7 -23
- package/contracts/registry/RegistryService.sol +33 -44
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +201 -191
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -19
- package/contracts/shared/Component.sol +25 -28
- package/contracts/shared/ComponentService.sol +235 -131
- package/contracts/shared/ComponentVerifyingService.sol +22 -13
- 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/IRegisterable.sol +11 -0
- package/contracts/shared/InstanceLinkedComponent.sol +68 -27
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +23 -3
- package/contracts/shared/PolicyHolder.sol +4 -0
- package/contracts/shared/Registerable.sol +15 -5
- package/contracts/shared/Service.sol +4 -7
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/Staking.sol +2 -3
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +15 -15
- 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 +2 -1
- 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
package/contracts/pool/Pool.sol
CHANGED
@@ -2,7 +2,7 @@
|
|
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
6
|
import {ClaimId} from "../type/ClaimId.sol";
|
7
7
|
import {IBundleService} from "./IBundleService.sol";
|
8
8
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
@@ -11,13 +11,12 @@ import {IPoolService} from "./IPoolService.sol";
|
|
11
11
|
import {IComponents} from "../instance/module/IComponents.sol";
|
12
12
|
import {IComponentService} from "../shared/IComponentService.sol";
|
13
13
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
14
|
-
import {Fee
|
15
|
-
import {NftId
|
14
|
+
import {Fee} from "../type/Fee.sol";
|
15
|
+
import {NftId} from "../type/NftId.sol";
|
16
16
|
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
17
17
|
import {Seconds} from "../type/Seconds.sol";
|
18
18
|
import {Timestamp} from "../type/Timestamp.sol";
|
19
|
-
import {
|
20
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
19
|
+
import {UFixedLib} from "../type/UFixed.sol";
|
21
20
|
|
22
21
|
abstract contract Pool is
|
23
22
|
InstanceLinkedComponent,
|
@@ -41,16 +40,6 @@ abstract contract Pool is
|
|
41
40
|
}
|
42
41
|
|
43
42
|
|
44
|
-
function register()
|
45
|
-
external
|
46
|
-
virtual
|
47
|
-
onlyOwner()
|
48
|
-
{
|
49
|
-
_getPoolStorage()._componentService.registerPool();
|
50
|
-
_approveTokenHandler(type(uint256).max);
|
51
|
-
}
|
52
|
-
|
53
|
-
|
54
43
|
/// @dev see {IPoolComponent.verifyApplication}
|
55
44
|
function verifyApplication(
|
56
45
|
NftId applicationNftId,
|
@@ -62,6 +51,7 @@ abstract contract Pool is
|
|
62
51
|
public
|
63
52
|
virtual
|
64
53
|
restricted()
|
54
|
+
onlyNftOfType(applicationNftId, POLICY())
|
65
55
|
{
|
66
56
|
if(!applicationMatchesBundle(
|
67
57
|
applicationNftId,
|
@@ -87,6 +77,7 @@ abstract contract Pool is
|
|
87
77
|
public
|
88
78
|
virtual
|
89
79
|
restricted()
|
80
|
+
onlyNftOfType(policyNftId, POLICY())
|
90
81
|
{
|
91
82
|
// default implementation is empty
|
92
83
|
}
|
@@ -105,6 +96,8 @@ abstract contract Pool is
|
|
105
96
|
public
|
106
97
|
virtual
|
107
98
|
view
|
99
|
+
onlyNftOfType(applicationNftId, POLICY())
|
100
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
108
101
|
returns (bool isMatching)
|
109
102
|
{
|
110
103
|
return true;
|
@@ -116,6 +109,7 @@ abstract contract Pool is
|
|
116
109
|
virtual
|
117
110
|
restricted()
|
118
111
|
onlyBundleOwner(bundleNftId)
|
112
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
119
113
|
returns (Amount withdrawnAmount)
|
120
114
|
{
|
121
115
|
return _withdrawBundleFees(bundleNftId, amount);
|
@@ -144,13 +138,12 @@ abstract contract Pool is
|
|
144
138
|
|
145
139
|
function _initializePool(
|
146
140
|
address registry,
|
147
|
-
NftId
|
141
|
+
NftId productNftId,
|
148
142
|
string memory name,
|
149
143
|
address token,
|
150
144
|
IAuthorization authorization,
|
151
145
|
bool isInterceptingNftTransfers,
|
152
146
|
address initialOwner,
|
153
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
154
147
|
bytes memory componentData // component specifidc data
|
155
148
|
)
|
156
149
|
internal
|
@@ -159,14 +152,13 @@ abstract contract Pool is
|
|
159
152
|
{
|
160
153
|
_initializeInstanceLinkedComponent(
|
161
154
|
registry,
|
162
|
-
|
155
|
+
productNftId,
|
163
156
|
name,
|
164
157
|
token,
|
165
158
|
POOL(),
|
166
159
|
authorization,
|
167
160
|
isInterceptingNftTransfers,
|
168
161
|
initialOwner,
|
169
|
-
registryData,
|
170
162
|
componentData);
|
171
163
|
|
172
164
|
PoolStorage storage $ = _getPoolStorage();
|
@@ -276,16 +268,6 @@ abstract contract Pool is
|
|
276
268
|
_getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
|
277
269
|
}
|
278
270
|
|
279
|
-
/// @dev Sets the required role to create/own bundles.
|
280
|
-
/// May only be called once after setting up a pool.
|
281
|
-
/// May only be called by pool owner.
|
282
|
-
function _setBundleOwnerRole(RoleId bundleOwnerRole)
|
283
|
-
internal
|
284
|
-
virtual
|
285
|
-
{
|
286
|
-
_getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
|
287
|
-
}
|
288
|
-
|
289
271
|
|
290
272
|
/// @dev Update pool fees to the specified values.
|
291
273
|
/// Pool fee: are deducted from the premium amount and goes to the pool owner.
|
@@ -334,6 +316,17 @@ abstract contract Pool is
|
|
334
316
|
return _getPoolStorage()._bundleService.withdrawBundleFees(bundleNftId, amount);
|
335
317
|
}
|
336
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
|
+
|
337
330
|
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
338
331
|
assembly {
|
339
332
|
$.slot := POOL_STORAGE_LOCATION_V1
|
@@ -6,18 +6,17 @@ import {IBundleService} from "./IBundleService.sol";
|
|
6
6
|
import {IComponents} from "../instance/module/IComponents.sol";
|
7
7
|
import {IComponentService} from "../shared/IComponentService.sol";
|
8
8
|
import {IInstance} from "../instance/IInstance.sol";
|
9
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
10
9
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
10
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
11
11
|
import {IPoolService} from "./IPoolService.sol";
|
12
12
|
import {IRegistry} from "../registry/IRegistry.sol";
|
13
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
14
13
|
import {IStaking} from "../staking/IStaking.sol";
|
15
14
|
|
16
15
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
16
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
17
17
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
18
18
|
import {NftId} from "../type/NftId.sol";
|
19
|
-
import {ObjectType, POOL, BUNDLE,
|
20
|
-
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
19
|
+
import {ObjectType, POOL, BUNDLE, PRODUCT, POLICY, COMPONENT} from "../type/ObjectType.sol";
|
21
20
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
22
21
|
import {KEEP_STATE} from "../type/StateId.sol";
|
23
22
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -34,9 +33,6 @@ contract PoolService is
|
|
34
33
|
{
|
35
34
|
IBundleService internal _bundleService;
|
36
35
|
IComponentService internal _componentService;
|
37
|
-
IInstanceService private _instanceService;
|
38
|
-
IRegistryService private _registryService;
|
39
|
-
|
40
36
|
IStaking private _staking;
|
41
37
|
|
42
38
|
function _initialize(
|
@@ -54,16 +50,14 @@ contract PoolService is
|
|
54
50
|
|
55
51
|
_initializeService(registryAddress, authority, owner);
|
56
52
|
|
57
|
-
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
58
53
|
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
59
|
-
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
60
54
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
61
|
-
|
62
55
|
_staking = IStaking(getRegistry().getStakingAddress());
|
63
56
|
|
64
57
|
_registerInterface(type(IPoolService).interfaceId);
|
65
58
|
}
|
66
59
|
|
60
|
+
|
67
61
|
/// @inheritdoc IPoolService
|
68
62
|
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
69
63
|
external
|
@@ -80,26 +74,6 @@ contract PoolService is
|
|
80
74
|
emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
|
81
75
|
}
|
82
76
|
|
83
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
84
|
-
external
|
85
|
-
virtual
|
86
|
-
{
|
87
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
88
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
89
|
-
|
90
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
91
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
92
|
-
|
93
|
-
// bundle owner role may only be set once per pool
|
94
|
-
if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
|
95
|
-
revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
|
96
|
-
}
|
97
|
-
|
98
|
-
poolInfo.bundleOwnerRole = bundleOwnerRole;
|
99
|
-
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
100
|
-
|
101
|
-
emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
|
102
|
-
}
|
103
77
|
|
104
78
|
/// @inheritdoc IPoolService
|
105
79
|
function createBundle(
|
@@ -127,20 +101,13 @@ contract PoolService is
|
|
127
101
|
emit LogPoolServiceBundleCreated(instance.getNftId(), poolNftId, bundleNftId);
|
128
102
|
}
|
129
103
|
|
130
|
-
function _getStakingFee(InstanceReader instanceReader, NftId poolNftId)
|
131
|
-
internal
|
132
|
-
virtual
|
133
|
-
view
|
134
|
-
returns (Fee memory stakingFee)
|
135
|
-
{
|
136
|
-
NftId productNftId = instanceReader.getComponentInfo(poolNftId).productNftId;
|
137
|
-
return instanceReader.getProductInfo(productNftId).stakingFee;
|
138
|
-
}
|
139
104
|
|
140
105
|
function closeBundle(NftId bundleNftId)
|
141
106
|
external
|
142
107
|
virtual
|
143
108
|
{
|
109
|
+
_checkNftType(bundleNftId, BUNDLE());
|
110
|
+
|
144
111
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
145
112
|
|
146
113
|
// TODO get performance fee for pool (#477)
|
@@ -165,6 +132,41 @@ contract PoolService is
|
|
165
132
|
}
|
166
133
|
}
|
167
134
|
|
135
|
+
|
136
|
+
/// @inheritdoc IPoolService
|
137
|
+
function processFundedClaim(
|
138
|
+
NftId policyNftId,
|
139
|
+
ClaimId claimId,
|
140
|
+
Amount availableAmount
|
141
|
+
)
|
142
|
+
external
|
143
|
+
virtual
|
144
|
+
{
|
145
|
+
_checkNftType(policyNftId, POLICY());
|
146
|
+
|
147
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
148
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
149
|
+
NftId productNftId = _getProductNftId(poolNftId);
|
150
|
+
|
151
|
+
// check policy matches with calling pool
|
152
|
+
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
153
|
+
if(policyInfo.productNftId != productNftId) {
|
154
|
+
revert ErrorPoolServicePolicyPoolMismatch(
|
155
|
+
policyNftId,
|
156
|
+
policyInfo.productNftId,
|
157
|
+
productNftId);
|
158
|
+
}
|
159
|
+
|
160
|
+
emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
|
161
|
+
|
162
|
+
// callback to product component if applicable
|
163
|
+
if (instanceReader.getProductInfo(productNftId).isProcessingFundedClaims) {
|
164
|
+
address productAddress = getRegistry().getObjectAddress(productNftId);
|
165
|
+
IProductComponent(productAddress).processFundedClaim(policyNftId, claimId, availableAmount);
|
166
|
+
}
|
167
|
+
}
|
168
|
+
|
169
|
+
|
168
170
|
/// @inheritdoc IPoolService
|
169
171
|
function stake(NftId bundleNftId, Amount amount)
|
170
172
|
external
|
@@ -172,6 +174,8 @@ contract PoolService is
|
|
172
174
|
// TODO: restricted() (once #462 is done)
|
173
175
|
returns(Amount netAmount)
|
174
176
|
{
|
177
|
+
_checkNftType(bundleNftId, BUNDLE());
|
178
|
+
|
175
179
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
176
180
|
InstanceReader instanceReader = instance.getInstanceReader();
|
177
181
|
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
@@ -189,13 +193,19 @@ contract PoolService is
|
|
189
193
|
}
|
190
194
|
|
191
195
|
// calculate fees
|
196
|
+
IRegistry registry = getRegistry();
|
192
197
|
Amount feeAmount;
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
198
|
+
|
199
|
+
{
|
200
|
+
NftId productNftId = registry.getObjectInfo(poolNftId).parentNftId;
|
201
|
+
Fee memory stakingFee = instanceReader.getProductInfo(productNftId).stakingFee;
|
202
|
+
(
|
203
|
+
feeAmount,
|
204
|
+
netAmount
|
205
|
+
) = FeeLib.calculateFee(
|
206
|
+
stakingFee,
|
207
|
+
amount);
|
208
|
+
}
|
199
209
|
|
200
210
|
// do all the bookkeeping
|
201
211
|
_componentService.increasePoolBalance(
|
@@ -207,7 +217,7 @@ contract PoolService is
|
|
207
217
|
_bundleService.stake(instance, bundleNftId, netAmount);
|
208
218
|
|
209
219
|
// collect tokens from bundle owner
|
210
|
-
address bundleOwner =
|
220
|
+
address bundleOwner = registry.ownerOf(bundleNftId);
|
211
221
|
emit LogPoolServiceBundleStaked(instance.getNftId(), poolNftId, bundleNftId, amount, netAmount);
|
212
222
|
|
213
223
|
// TODO only collect staking token when pool is not externally managed
|
@@ -225,6 +235,8 @@ contract PoolService is
|
|
225
235
|
// TODO: restricted() (once #462 is done)
|
226
236
|
returns(Amount netAmount)
|
227
237
|
{
|
238
|
+
_checkNftType(bundleNftId, BUNDLE());
|
239
|
+
|
228
240
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
229
241
|
InstanceReader instanceReader = instance.getInstanceReader();
|
230
242
|
InstanceStore instanceStore = instance.getInstanceStore();
|
@@ -250,14 +262,15 @@ contract PoolService is
|
|
250
262
|
AmountLib.zero());
|
251
263
|
|
252
264
|
IComponents.ComponentInfo memory poolComponentInfo = instanceReader.getComponentInfo(poolNftId);
|
253
|
-
|
265
|
+
|
254
266
|
// transfer amount to bundle owner
|
255
267
|
address owner = getRegistry().ownerOf(bundleNftId);
|
256
268
|
emit LogPoolServiceBundleUnstaked(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount);
|
257
269
|
poolComponentInfo.tokenHandler.distributeTokens(
|
258
|
-
|
270
|
+
poolComponentInfo.wallet,
|
259
271
|
owner,
|
260
272
|
unstakedAmount);
|
273
|
+
|
261
274
|
return unstakedAmount;
|
262
275
|
}
|
263
276
|
|
@@ -267,6 +280,7 @@ contract PoolService is
|
|
267
280
|
virtual
|
268
281
|
restricted()
|
269
282
|
{
|
283
|
+
_checkNftType(poolNftId, POOL());
|
270
284
|
// TODO check that poolNftId is externally managed
|
271
285
|
// TODO implement
|
272
286
|
}
|
@@ -277,6 +291,8 @@ contract PoolService is
|
|
277
291
|
virtual
|
278
292
|
restricted()
|
279
293
|
{
|
294
|
+
_checkNftType(poolNftId, POOL());
|
295
|
+
|
280
296
|
// TODO check that poolNftId is externally managed
|
281
297
|
// TODO implement
|
282
298
|
}
|
@@ -289,11 +305,12 @@ contract PoolService is
|
|
289
305
|
virtual
|
290
306
|
restricted()
|
291
307
|
{
|
308
|
+
_checkNftType(bundleNftId, BUNDLE());
|
309
|
+
|
292
310
|
IRegistry registry = getRegistry();
|
293
|
-
IRegistry.ObjectInfo memory
|
294
|
-
IRegistry.ObjectInfo memory
|
295
|
-
|
296
|
-
IInstance instance = IInstance(instanceObjectInfo.objectAddress);
|
311
|
+
IRegistry.ObjectInfo memory bundleInfo = registry.getObjectInfo(bundleNftId);
|
312
|
+
IRegistry.ObjectInfo memory poolInfo = registry.getObjectInfo(bundleInfo.parentNftId);
|
313
|
+
IInstance instance = _getInstanceForComponent(registry, poolInfo);
|
297
314
|
|
298
315
|
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
299
316
|
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
@@ -302,13 +319,13 @@ contract PoolService is
|
|
302
319
|
InstanceStore instanceStore = instance.getInstanceStore();
|
303
320
|
_componentService.increasePoolBalance(
|
304
321
|
instanceStore,
|
305
|
-
|
322
|
+
poolInfo.nftId,
|
306
323
|
bundleNetAmount + bundleFeeAmount,
|
307
324
|
poolFeeAmount);
|
308
325
|
|
309
326
|
_componentService.increaseBundleBalance(
|
310
327
|
instanceStore,
|
311
|
-
|
328
|
+
bundleInfo.nftId,
|
312
329
|
bundleNetAmount,
|
313
330
|
bundleFeeAmount);
|
314
331
|
}
|
@@ -326,13 +343,17 @@ contract PoolService is
|
|
326
343
|
virtual
|
327
344
|
restricted()
|
328
345
|
returns (
|
329
|
-
Amount
|
330
|
-
Amount
|
346
|
+
Amount totalCollateralAmount,
|
347
|
+
Amount localCollateralAmount
|
331
348
|
)
|
332
349
|
{
|
350
|
+
_checkNftType(productNftId, PRODUCT());
|
351
|
+
_checkNftType(applicationNftId, POLICY());
|
352
|
+
_checkNftType(bundleNftId, BUNDLE());
|
353
|
+
|
333
354
|
(
|
334
|
-
|
335
|
-
|
355
|
+
totalCollateralAmount,
|
356
|
+
localCollateralAmount
|
336
357
|
) = calculateRequiredCollateral(
|
337
358
|
instance.getInstanceReader(),
|
338
359
|
productNftId,
|
@@ -350,16 +371,9 @@ contract PoolService is
|
|
350
371
|
instance.getNftId(),
|
351
372
|
token,
|
352
373
|
totalCollateralAmount);
|
353
|
-
|
354
|
-
// hierarhical riskpool setup
|
355
|
-
// TODO loop in with pool component to guarantee availability of external capital
|
356
|
-
if(totalCollateralAmount > localCollateralAmount) {
|
357
|
-
|
358
|
-
}
|
359
374
|
}
|
360
375
|
|
361
|
-
|
362
|
-
function reduceCollateral(
|
376
|
+
function processPayout(
|
363
377
|
IInstance instance,
|
364
378
|
address token,
|
365
379
|
NftId policyNftId,
|
@@ -370,6 +384,24 @@ contract PoolService is
|
|
370
384
|
virtual
|
371
385
|
restricted()
|
372
386
|
{
|
387
|
+
_checkNftType(policyNftId, POLICY());
|
388
|
+
|
389
|
+
NftId bundleNftId = policyInfo.bundleNftId;
|
390
|
+
NftId poolNftId = getRegistry().getObjectInfo(bundleNftId).parentNftId;
|
391
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
392
|
+
|
393
|
+
_componentService.decreasePoolBalance(
|
394
|
+
instanceStore,
|
395
|
+
poolNftId,
|
396
|
+
payoutAmount,
|
397
|
+
AmountLib.zero());
|
398
|
+
|
399
|
+
_componentService.decreaseBundleBalance(
|
400
|
+
instanceStore,
|
401
|
+
bundleNftId,
|
402
|
+
payoutAmount,
|
403
|
+
AmountLib.zero());
|
404
|
+
|
373
405
|
_bundleService.releaseCollateral(
|
374
406
|
instance,
|
375
407
|
policyNftId,
|
@@ -396,6 +428,8 @@ contract PoolService is
|
|
396
428
|
virtual
|
397
429
|
restricted()
|
398
430
|
{
|
431
|
+
_checkNftType(policyNftId, POLICY());
|
432
|
+
|
399
433
|
Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
|
400
434
|
|
401
435
|
_bundleService.releaseCollateral(
|
@@ -424,16 +458,18 @@ contract PoolService is
|
|
424
458
|
public
|
425
459
|
view
|
426
460
|
returns(
|
427
|
-
Amount
|
428
|
-
Amount
|
461
|
+
Amount totalCollateralAmount,
|
462
|
+
Amount localCollateralAmount
|
429
463
|
)
|
430
464
|
{
|
465
|
+
_checkNftType(productNftId, PRODUCT());
|
466
|
+
|
431
467
|
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
432
468
|
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
433
469
|
|
434
470
|
(
|
435
|
-
|
436
|
-
|
471
|
+
totalCollateralAmount,
|
472
|
+
localCollateralAmount
|
437
473
|
) = calculateRequiredCollateral(
|
438
474
|
poolInfo.collateralizationLevel,
|
439
475
|
poolInfo.retentionLevel,
|
@@ -449,18 +485,17 @@ contract PoolService is
|
|
449
485
|
public
|
450
486
|
pure
|
451
487
|
returns(
|
452
|
-
Amount
|
453
|
-
Amount
|
488
|
+
Amount totalCollateralAmount,
|
489
|
+
Amount localCollateralAmount
|
454
490
|
)
|
455
491
|
{
|
456
|
-
//
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
//
|
461
|
-
|
462
|
-
|
463
|
-
totalCollateralAmount = localCollateralAmount;
|
492
|
+
// collateralization is applied to sum insured
|
493
|
+
UFixed totalUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
|
494
|
+
totalCollateralAmount = AmountLib.toAmount(totalUFixed.toInt());
|
495
|
+
|
496
|
+
// retention level defines how much capital is required locally
|
497
|
+
localCollateralAmount = AmountLib.toAmount(
|
498
|
+
(retentionLevel * totalUFixed).toInt());
|
464
499
|
}
|
465
500
|
|
466
501
|
|
@@ -469,6 +504,7 @@ contract PoolService is
|
|
469
504
|
Amount stakingAmount
|
470
505
|
)
|
471
506
|
internal
|
507
|
+
pure
|
472
508
|
returns (Amount stakingNetAmount)
|
473
509
|
{
|
474
510
|
stakingNetAmount = stakingAmount;
|
@@ -13,7 +13,7 @@ import {IRegistryService} from "../registry/IRegistryService.sol";
|
|
13
13
|
import {AmountLib} from "../type/Amount.sol";
|
14
14
|
import {Seconds} from "../type/Seconds.sol";
|
15
15
|
import {zeroTimestamp} from "../type/Timestamp.sol";
|
16
|
-
import {ObjectType, DISTRIBUTION, PRODUCT, REGISTRY, APPLICATION, POLICY, PRICE} from "../type/ObjectType.sol";
|
16
|
+
import {ObjectType, BUNDLE, DISTRIBUTION, PRODUCT, REGISTRY, APPLICATION, POLICY, PRICE} from "../type/ObjectType.sol";
|
17
17
|
import {REVOKED} from "../type/StateId.sol";
|
18
18
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
19
19
|
import {ReferralId} from "../type/Referral.sol";
|
@@ -134,8 +134,11 @@ contract ApplicationService is
|
|
134
134
|
)
|
135
135
|
external
|
136
136
|
virtual
|
137
|
+
nonReentrant()
|
137
138
|
returns (NftId applicationNftId)
|
138
139
|
{
|
140
|
+
_checkNftType(bundleNftId, BUNDLE());
|
141
|
+
|
139
142
|
(NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
140
143
|
|
141
144
|
// check if provided references are valid and linked to calling product contract
|
@@ -208,9 +211,12 @@ contract ApplicationService is
|
|
208
211
|
NftId bundleNftId // will likely need a newer bundle for underwriting
|
209
212
|
)
|
210
213
|
external
|
211
|
-
virtual
|
214
|
+
virtual
|
215
|
+
nonReentrant()
|
212
216
|
returns (NftId applicationNftId)
|
213
217
|
{
|
218
|
+
_checkNftType(policyNftId, POLICY());
|
219
|
+
_checkNftType(bundleNftId, BUNDLE());
|
214
220
|
// TODO implement
|
215
221
|
}
|
216
222
|
|
@@ -225,15 +231,21 @@ contract ApplicationService is
|
|
225
231
|
bytes memory applicationData
|
226
232
|
)
|
227
233
|
external
|
228
|
-
virtual
|
234
|
+
virtual
|
235
|
+
nonReentrant()
|
229
236
|
{
|
237
|
+
_checkNftType(applicationNftId, POLICY());
|
238
|
+
_checkNftType(bundleNftId, BUNDLE());
|
230
239
|
// TODO implement
|
231
240
|
}
|
232
241
|
|
233
242
|
function revoke(NftId applicationNftId)
|
234
243
|
external
|
235
|
-
virtual
|
244
|
+
virtual
|
245
|
+
nonReentrant()
|
236
246
|
{
|
247
|
+
_checkNftType(applicationNftId, POLICY());
|
248
|
+
|
237
249
|
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
238
250
|
instance.getInstanceStore().updateApplicationState(applicationNftId, REVOKED());
|
239
251
|
}
|
@@ -30,8 +30,8 @@ abstract contract BasicProduct is
|
|
30
30
|
string memory name,
|
31
31
|
address token,
|
32
32
|
bool isInterceptor,
|
33
|
-
|
34
|
-
|
33
|
+
bool hasDistribution,
|
34
|
+
uint8 numberOfOracles
|
35
35
|
)
|
36
36
|
internal
|
37
37
|
virtual
|
@@ -45,9 +45,9 @@ abstract contract BasicProduct is
|
|
45
45
|
name,
|
46
46
|
token,
|
47
47
|
isInterceptor,
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
""); //
|
48
|
+
false, // is processing funded claims
|
49
|
+
hasDistribution,
|
50
|
+
numberOfOracles,
|
51
|
+
""); // component data
|
52
52
|
}
|
53
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
|
}
|