@etherisc/gif-next 0.0.2-e5a6af8-639 → 0.0.2-e5bdc7a-061
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- 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/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +55 -133
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +8 -38
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +133 -78
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +78 -46
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +11 -23
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +23 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +38 -147
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +49 -17
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +92 -190
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +2 -2
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +66 -107
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +33 -87
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +155 -141
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +391 -205
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +46 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +24 -4
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -11
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +85 -72
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +40 -27
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +302 -74
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +61 -25
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +46 -22
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +36 -46
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- 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 +22 -100
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- 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 +11 -23
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +8 -38
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +84 -60
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +66 -22
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +8 -53
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +49 -17
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +101 -206
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +58 -70
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -57
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +11 -62
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +77 -75
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +8 -77
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +153 -159
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -33
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +66 -31
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +42 -22
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +13 -38
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +84 -76
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +67 -47
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +34 -7
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +38 -19
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +16 -23
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +132 -121
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +70 -42
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +54 -38
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +56 -32
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +13 -38
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +34 -18
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +40 -16
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +24 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +62 -38
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +107 -94
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +32 -16
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +39 -15
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +12 -12
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- 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 +8 -38
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +169 -102
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +74 -42
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +402 -6
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +11 -23
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +67 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +11 -23
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- 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 +8 -38
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -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 +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
- 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/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +29 -59
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- 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 +80 -152
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +50 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +36 -20
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +43 -19
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
- 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/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +43 -5
- 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/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/UFixedLib.dbg.json +1 -1
- 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 +18 -2
- 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 +21 -1
- package/contracts/distribution/BasicDistribution.sol +2 -2
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +5 -6
- package/contracts/distribution/DistributionService.sol +19 -20
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/FirePool.sol +19 -8
- package/contracts/examples/fire/FireProduct.sol +24 -11
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +8 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +34 -2
- package/contracts/examples/unpermissioned/SimpleProduct.sol +15 -21
- package/contracts/instance/BundleSet.sol +38 -34
- package/contracts/instance/IInstance.sol +6 -0
- package/contracts/instance/IInstanceService.sol +7 -5
- package/contracts/instance/Instance.sol +14 -5
- package/contracts/instance/InstanceAdmin.sol +6 -5
- package/contracts/instance/InstanceAuthorizationV3.sol +30 -7
- package/contracts/instance/InstanceReader.sol +85 -1
- package/contracts/instance/InstanceService.sol +32 -19
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/ObjectSet.sol +24 -25
- package/contracts/instance/module/IComponents.sol +1 -2
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +1 -0
- package/contracts/oracle/OracleService.sol +87 -69
- package/contracts/pool/BasicPool.sol +24 -3
- package/contracts/pool/BasicPoolAuthorization.sol +12 -1
- package/contracts/pool/BundleService.sol +37 -94
- package/contracts/pool/IBundleService.sol +2 -23
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +12 -26
- package/contracts/pool/Pool.sol +112 -102
- package/contracts/pool/PoolService.sol +177 -99
- package/contracts/product/ApplicationService.sol +20 -18
- package/contracts/product/BasicProduct.sol +7 -11
- package/contracts/product/ClaimService.sol +19 -9
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IPolicyService.sol +17 -7
- package/contracts/product/PolicyService.sol +241 -191
- package/contracts/product/PricingService.sol +4 -1
- package/contracts/product/Product.sol +12 -40
- package/contracts/product/RiskService.sol +14 -3
- package/contracts/registry/IRegistry.sol +2 -0
- package/contracts/registry/Registry.sol +9 -1
- package/contracts/registry/RegistryAdmin.sol +14 -11
- package/contracts/registry/ReleaseRegistry.sol +2 -18
- package/contracts/registry/ServiceAuthorizationV3.sol +12 -31
- package/contracts/shared/Component.sol +35 -83
- package/contracts/shared/ComponentService.sol +105 -34
- package/contracts/shared/ComponentVerifyingService.sol +15 -13
- package/contracts/shared/ContractLib.sol +196 -10
- package/contracts/shared/IComponent.sol +5 -12
- package/contracts/shared/IComponentService.sol +13 -3
- package/contracts/shared/InstanceLinkedComponent.sol +1 -9
- package/contracts/shared/NftOwnable.sol +5 -1
- package/contracts/shared/Registerable.sol +0 -2
- package/contracts/shared/RegistryLinked.sol +6 -12
- package/contracts/shared/TokenHandler.sol +316 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/Staking.sol +29 -21
- package/contracts/staking/StakingService.sol +55 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +2 -0
- package/contracts/type/RiskId.sol +18 -6
- package/package.json +3 -3
@@ -3,32 +3,28 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
5
|
import {ClaimId} from "../type/ClaimId.sol";
|
6
|
-
import {Fee} from "../type/Fee.sol";
|
7
|
-
import {IBundle} from "../instance/module/IBundle.sol";
|
8
6
|
import {IInstance} from "../instance/IInstance.sol";
|
9
7
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
10
8
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
9
|
import {IService} from "../shared/IService.sol";
|
12
10
|
import {NftId} from "../type/NftId.sol";
|
13
|
-
import {PayoutId} from "../type/PayoutId.sol";
|
14
|
-
import {RoleId} from "../type/RoleId.sol";
|
15
|
-
import {Seconds} from "../type/Seconds.sol";
|
16
|
-
import {StateId} from "../type/StateId.sol";
|
17
11
|
import {UFixed} from "../type/UFixed.sol";
|
18
12
|
|
19
13
|
interface IPoolService is IService {
|
20
14
|
|
21
15
|
event LogPoolServiceMaxBalanceAmountUpdated(NftId poolNftId, Amount previousMaxCapitalAmount, Amount currentMaxCapitalAmount);
|
22
|
-
event
|
16
|
+
event LogPoolServiceWalletFunded(NftId poolNftId, address poolOwner, Amount amount);
|
17
|
+
event LogPoolServiceWalletDefunded(NftId poolNftId, address poolOwner, Amount amount);
|
23
18
|
|
24
19
|
event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
25
20
|
event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
26
21
|
|
27
22
|
event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
28
|
-
event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount);
|
23
|
+
event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
29
24
|
|
30
25
|
event LogPoolServiceProcessFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount);
|
31
26
|
|
27
|
+
error ErrorPoolServicePoolNotExternallyManaged(NftId poolNftId);
|
32
28
|
error ErrorPoolServicePolicyPoolMismatch(NftId policyNftId, NftId productNftId, NftId expectedProductNftId);
|
33
29
|
error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
|
34
30
|
error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
|
@@ -80,18 +76,6 @@ interface IPoolService is IService {
|
|
80
76
|
) external;
|
81
77
|
|
82
78
|
|
83
|
-
/// @dev create a new empty bundle with the provided parameters
|
84
|
-
/// may only be called by registered and unlocked pool components.
|
85
|
-
function createBundle(
|
86
|
-
address owner, // initial bundle owner
|
87
|
-
Fee memory fee, // fees deducted from premium that go to bundle owner
|
88
|
-
Seconds lifetime, // initial duration for which new policies are covered
|
89
|
-
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
90
|
-
)
|
91
|
-
external
|
92
|
-
returns(NftId bundleNftId); // the nft id of the newly created bundle
|
93
|
-
|
94
|
-
|
95
79
|
/// @dev increase stakes for bundle
|
96
80
|
/// staking fees will be deducted by the pool service from the staking amount
|
97
81
|
/// may only be called by registered and unlocked pool components
|
@@ -117,18 +101,18 @@ interface IPoolService is IService {
|
|
117
101
|
function processFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount) external;
|
118
102
|
|
119
103
|
|
120
|
-
/// @dev Fund the
|
121
|
-
/// This function will collect the amount from the
|
104
|
+
/// @dev Fund the pool wallet with the provided amount.
|
105
|
+
/// This function will collect the amount from the pool owner and transfers it to the pool wallet.
|
122
106
|
/// The function will not update balance amounts managed by the framework.
|
123
107
|
/// Only available for externally managed pools.
|
124
|
-
function fundPoolWallet(
|
108
|
+
function fundPoolWallet(Amount amount) external;
|
125
109
|
|
126
110
|
|
127
111
|
/// @dev Defund the specified pool wallet with the provided amount.
|
128
|
-
/// This function will transfer the amount from the pool wallet to the
|
112
|
+
/// This function will transfer the amount from the pool wallet to the pool owner.
|
129
113
|
/// The function will not update balance amounts managed by the framework.
|
130
114
|
/// Only available for externally managed pools.
|
131
|
-
function defundPoolWallet(
|
115
|
+
function defundPoolWallet(Amount amount) external;
|
132
116
|
|
133
117
|
|
134
118
|
/// @dev processes the sale of a bundle and track the pool fee and bundle fee amounts
|
@@ -144,8 +128,10 @@ interface IPoolService is IService {
|
|
144
128
|
external
|
145
129
|
view
|
146
130
|
returns(
|
131
|
+
NftId poolNftId,
|
147
132
|
Amount totalCollateralAmount,
|
148
|
-
Amount localCollateralAmount
|
133
|
+
Amount localCollateralAmount,
|
134
|
+
bool poolIsVerifyingApplications
|
149
135
|
);
|
150
136
|
|
151
137
|
|
package/contracts/pool/Pool.sol
CHANGED
@@ -11,12 +11,13 @@ 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 {InstanceReader} from "../instance/InstanceReader.sol";
|
14
15
|
import {Fee} from "../type/Fee.sol";
|
15
16
|
import {NftId} from "../type/NftId.sol";
|
16
17
|
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
17
18
|
import {Seconds} from "../type/Seconds.sol";
|
18
19
|
import {Timestamp} from "../type/Timestamp.sol";
|
19
|
-
import {
|
20
|
+
import {UFixed} from "../type/UFixed.sol";
|
20
21
|
|
21
22
|
abstract contract Pool is
|
22
23
|
InstanceLinkedComponent,
|
@@ -26,6 +27,7 @@ abstract contract Pool is
|
|
26
27
|
bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
|
27
28
|
|
28
29
|
struct PoolStorage {
|
30
|
+
IComponents.PoolInfo _poolInfo;
|
29
31
|
IComponentService _componentService;
|
30
32
|
IPoolService _poolService;
|
31
33
|
IBundleService _bundleService;
|
@@ -40,12 +42,16 @@ abstract contract Pool is
|
|
40
42
|
}
|
41
43
|
|
42
44
|
|
45
|
+
// TODO remove function once this is no longer used to produce contract locations on the fly ...
|
46
|
+
function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
|
47
|
+
return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
|
48
|
+
}
|
49
|
+
|
50
|
+
|
43
51
|
/// @dev see {IPoolComponent.verifyApplication}
|
44
52
|
function verifyApplication(
|
45
53
|
NftId applicationNftId,
|
46
|
-
bytes memory applicationData,
|
47
54
|
NftId bundleNftId,
|
48
|
-
bytes memory bundleFilter,
|
49
55
|
Amount collateralizationAmount
|
50
56
|
)
|
51
57
|
public
|
@@ -53,11 +59,12 @@ abstract contract Pool is
|
|
53
59
|
restricted()
|
54
60
|
onlyNftOfType(applicationNftId, POLICY())
|
55
61
|
{
|
62
|
+
InstanceReader reader = _getInstanceReader();
|
56
63
|
if(!applicationMatchesBundle(
|
57
64
|
applicationNftId,
|
58
|
-
applicationData,
|
65
|
+
reader.getPolicyInfo(applicationNftId).applicationData,
|
59
66
|
bundleNftId,
|
60
|
-
|
67
|
+
reader.getBundleInfo(bundleNftId).filter,
|
61
68
|
collateralizationAmount)
|
62
69
|
)
|
63
70
|
{
|
@@ -84,8 +91,9 @@ abstract contract Pool is
|
|
84
91
|
|
85
92
|
|
86
93
|
/// @dev see {IPoolComponent.applicationMatchesBundle}
|
87
|
-
///
|
88
|
-
///
|
94
|
+
/// Default implementation always returns true.
|
95
|
+
/// Override this function to implement any custom application verification.
|
96
|
+
/// Calling super.applicationMatchesBundle will ensure validation of application and bundle nft ids.
|
89
97
|
function applicationMatchesBundle(
|
90
98
|
NftId applicationNftId,
|
91
99
|
bytes memory applicationData,
|
@@ -103,18 +111,6 @@ abstract contract Pool is
|
|
103
111
|
return true;
|
104
112
|
}
|
105
113
|
|
106
|
-
/// @inheritdoc IPoolComponent
|
107
|
-
function withdrawBundleFees(NftId bundleNftId, Amount amount)
|
108
|
-
external
|
109
|
-
virtual
|
110
|
-
restricted()
|
111
|
-
onlyBundleOwner(bundleNftId)
|
112
|
-
onlyNftOfType(bundleNftId, BUNDLE())
|
113
|
-
returns (Amount withdrawnAmount)
|
114
|
-
{
|
115
|
-
return _withdrawBundleFees(bundleNftId, amount);
|
116
|
-
}
|
117
|
-
|
118
114
|
|
119
115
|
function getInitialPoolInfo()
|
120
116
|
public
|
@@ -122,16 +118,7 @@ abstract contract Pool is
|
|
122
118
|
view
|
123
119
|
returns (IComponents.PoolInfo memory poolInfo)
|
124
120
|
{
|
125
|
-
return
|
126
|
-
maxBalanceAmount: AmountLib.max(),
|
127
|
-
bundleOwnerRole: PUBLIC_ROLE(),
|
128
|
-
isInterceptingBundleTransfers: isNftInterceptor(),
|
129
|
-
isProcessingConfirmedClaims: false,
|
130
|
-
isExternallyManaged: false,
|
131
|
-
isVerifyingApplications: false,
|
132
|
-
collateralizationLevel: UFixedLib.toUFixed(1),
|
133
|
-
retentionLevel: UFixedLib.toUFixed(1)
|
134
|
-
});
|
121
|
+
return _getPoolStorage()._poolInfo;
|
135
122
|
}
|
136
123
|
|
137
124
|
// Internals
|
@@ -141,8 +128,8 @@ abstract contract Pool is
|
|
141
128
|
NftId productNftId,
|
142
129
|
string memory name,
|
143
130
|
address token,
|
131
|
+
IComponents.PoolInfo memory poolInfo,
|
144
132
|
IAuthorization authorization,
|
145
|
-
bool isInterceptingNftTransfers,
|
146
133
|
address initialOwner,
|
147
134
|
bytes memory componentData // component specifidc data
|
148
135
|
)
|
@@ -157,11 +144,13 @@ abstract contract Pool is
|
|
157
144
|
token,
|
158
145
|
POOL(),
|
159
146
|
authorization,
|
160
|
-
|
147
|
+
poolInfo.isInterceptingBundleTransfers,
|
161
148
|
initialOwner,
|
162
149
|
componentData);
|
163
150
|
|
164
151
|
PoolStorage storage $ = _getPoolStorage();
|
152
|
+
|
153
|
+
$._poolInfo = poolInfo;
|
165
154
|
$._poolService = IPoolService(_getServiceAddress(POOL()));
|
166
155
|
$._bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
167
156
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
@@ -169,6 +158,97 @@ abstract contract Pool is
|
|
169
158
|
_registerInterface(type(IPoolComponent).interfaceId);
|
170
159
|
}
|
171
160
|
|
161
|
+
|
162
|
+
/// @dev Update pool fees to the specified values.
|
163
|
+
/// Pool fee: are deducted from the premium amount and goes to the pool owner.
|
164
|
+
/// Staking fee: are deducted from the staked tokens by a bundle owner and goes to the pool owner.
|
165
|
+
/// Performance fee: when a bundle is closed a bundle specific profit is calculated.
|
166
|
+
/// The performance fee is deducted from this profit and goes to the pool owner.
|
167
|
+
function _setPoolFees(
|
168
|
+
Fee memory poolFee,
|
169
|
+
Fee memory stakingFee,
|
170
|
+
Fee memory performanceFee
|
171
|
+
)
|
172
|
+
internal
|
173
|
+
virtual
|
174
|
+
{
|
175
|
+
_getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
|
176
|
+
}
|
177
|
+
|
178
|
+
|
179
|
+
/// @dev Sets the maximum balance amound held by this pool.
|
180
|
+
/// Function may only be called by pool owner.
|
181
|
+
function _setMaxBalanceAmount(Amount maxBalanceAmount)
|
182
|
+
internal
|
183
|
+
virtual
|
184
|
+
{
|
185
|
+
_getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
|
186
|
+
}
|
187
|
+
|
188
|
+
|
189
|
+
/// @dev Fund the pool wallet with the specified amount.
|
190
|
+
/// Function is only available for externally managed pools.
|
191
|
+
function _fundPoolWallet(Amount amount)
|
192
|
+
internal
|
193
|
+
virtual
|
194
|
+
{
|
195
|
+
_getPoolStorage()._poolService.fundPoolWallet(amount);
|
196
|
+
}
|
197
|
+
|
198
|
+
|
199
|
+
/// @dev Withdraw the specified amount from the pool wallet.
|
200
|
+
/// Function is only available for externally managed pools.
|
201
|
+
function _defundPoolWallet(Amount amount)
|
202
|
+
internal
|
203
|
+
virtual
|
204
|
+
{
|
205
|
+
_getPoolStorage()._poolService.defundPoolWallet(amount);
|
206
|
+
}
|
207
|
+
|
208
|
+
|
209
|
+
/// @dev Creates a new empty bundle using the provided parameter values.
|
210
|
+
function _createBundle(
|
211
|
+
address bundleOwner,
|
212
|
+
Fee memory fee,
|
213
|
+
Seconds lifetime,
|
214
|
+
bytes memory filter
|
215
|
+
)
|
216
|
+
internal
|
217
|
+
returns(NftId bundleNftId)
|
218
|
+
{
|
219
|
+
bundleNftId = _getPoolStorage()._bundleService.create(
|
220
|
+
bundleOwner,
|
221
|
+
fee,
|
222
|
+
lifetime,
|
223
|
+
filter);
|
224
|
+
|
225
|
+
// TODO add logging
|
226
|
+
}
|
227
|
+
|
228
|
+
|
229
|
+
/// @dev Sets the fee for the specified bundle.
|
230
|
+
/// The fee is added on top of the poolFee and deducted from the premium amounts
|
231
|
+
/// Via these fees individual bundler owner may earn income per policy in the context of peer to peer pools.
|
232
|
+
function _setBundleFee(
|
233
|
+
NftId bundleNftId,
|
234
|
+
Fee memory fee
|
235
|
+
)
|
236
|
+
internal
|
237
|
+
virtual
|
238
|
+
{
|
239
|
+
_getPoolStorage()._bundleService.setFee(bundleNftId, fee);
|
240
|
+
}
|
241
|
+
|
242
|
+
|
243
|
+
/// @dev Withdraws the specified amount of fees from the bundle.
|
244
|
+
function _withdrawBundleFees(NftId bundleNftId, Amount amount)
|
245
|
+
internal
|
246
|
+
returns (Amount withdrawnAmount)
|
247
|
+
{
|
248
|
+
return _getPoolStorage()._bundleService.withdrawBundleFees(bundleNftId, amount);
|
249
|
+
}
|
250
|
+
|
251
|
+
|
172
252
|
/// @dev increases the staked tokens by the specified amount
|
173
253
|
/// bundle MUST be in active or locked state
|
174
254
|
function _stake(
|
@@ -245,77 +325,6 @@ abstract contract Pool is
|
|
245
325
|
}
|
246
326
|
|
247
327
|
|
248
|
-
/// @dev Sets the fee for the specified bundle.
|
249
|
-
/// The fee is added on top of the poolFee and deducted from the premium amounts
|
250
|
-
/// Via these fees individual bundler owner may earn income per policy in the context of peer to peer pools.
|
251
|
-
function _setBundleFee(
|
252
|
-
NftId bundleNftId,
|
253
|
-
Fee memory fee
|
254
|
-
)
|
255
|
-
internal
|
256
|
-
virtual
|
257
|
-
{
|
258
|
-
_getPoolStorage()._bundleService.setFee(bundleNftId, fee);
|
259
|
-
}
|
260
|
-
|
261
|
-
|
262
|
-
/// @dev Sets the maximum balance amound held by this pool.
|
263
|
-
/// Function may only be called by pool owner.
|
264
|
-
function _setMaxBalanceAmount(Amount maxBalanceAmount)
|
265
|
-
internal
|
266
|
-
virtual
|
267
|
-
{
|
268
|
-
_getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
|
269
|
-
}
|
270
|
-
|
271
|
-
|
272
|
-
/// @dev Update pool fees to the specified values.
|
273
|
-
/// Pool fee: are deducted from the premium amount and goes to the pool owner.
|
274
|
-
/// Staking fee: are deducted from the staked tokens by a bundle owner and goes to the pool owner.
|
275
|
-
/// Performance fee: when a bundle is closed a bundle specific profit is calculated.
|
276
|
-
/// The performance fee is deducted from this profit and goes to the pool owner.
|
277
|
-
function _setPoolFees(
|
278
|
-
Fee memory poolFee,
|
279
|
-
Fee memory stakingFee,
|
280
|
-
Fee memory performanceFee
|
281
|
-
)
|
282
|
-
internal
|
283
|
-
virtual
|
284
|
-
{
|
285
|
-
_getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
|
286
|
-
}
|
287
|
-
|
288
|
-
/// @dev Creates a new empty bundle using the provided parameter values.
|
289
|
-
function _createBundle(
|
290
|
-
address bundleOwner,
|
291
|
-
Fee memory fee,
|
292
|
-
Seconds lifetime,
|
293
|
-
bytes memory filter
|
294
|
-
)
|
295
|
-
internal
|
296
|
-
returns(NftId bundleNftId)
|
297
|
-
{
|
298
|
-
bundleNftId = _getPoolStorage()._poolService.createBundle(
|
299
|
-
bundleOwner,
|
300
|
-
fee,
|
301
|
-
lifetime,
|
302
|
-
filter);
|
303
|
-
|
304
|
-
// TODO add logging
|
305
|
-
}
|
306
|
-
|
307
|
-
// TODO remove function once this is no longer used to produce contract locations on the fly ...
|
308
|
-
function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
|
309
|
-
return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
|
310
|
-
}
|
311
|
-
|
312
|
-
function _withdrawBundleFees(NftId bundleNftId, Amount amount)
|
313
|
-
internal
|
314
|
-
returns (Amount withdrawnAmount)
|
315
|
-
{
|
316
|
-
return _getPoolStorage()._bundleService.withdrawBundleFees(bundleNftId, amount);
|
317
|
-
}
|
318
|
-
|
319
328
|
function _processFundedClaim(
|
320
329
|
NftId policyNftId,
|
321
330
|
ClaimId claimId,
|
@@ -327,6 +336,7 @@ abstract contract Pool is
|
|
327
336
|
policyNftId, claimId, availableAmount);
|
328
337
|
}
|
329
338
|
|
339
|
+
|
330
340
|
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
331
341
|
assembly {
|
332
342
|
$.slot := POOL_STORAGE_LOCATION_V1
|