@etherisc/gif-next 0.0.2-b2e620f-736 → 0.0.2-b37fa8b-169
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 +63 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +91 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +573 -288
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +295 -47
- 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 +452 -210
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +119 -14
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +66 -144
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +275 -59
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -88
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +512 -204
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +147 -77
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -87
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +358 -82
- 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 +109 -100
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +274 -58
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -132
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +274 -58
- 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 +128 -168
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +274 -58
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -63
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -138
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +274 -58
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +342 -183
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +429 -35
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +345 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +473 -98
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +805 -448
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +246 -70
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +656 -418
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +377 -64
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -55
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +524 -1520
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2835 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- 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/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
- 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 +33 -35
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +294 -53
- 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 +19 -21
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -21
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +96 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -69
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +274 -58
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +124 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -31
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -31
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +346 -87
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +121 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +273 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +103 -41
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -48
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +274 -58
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +113 -75
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +208 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +50 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -42
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +231 -19
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +118 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +116 -114
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +100 -70
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -42
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +279 -43
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +91 -41
- 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 +33 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.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 +71 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +704 -472
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +76 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +710 -407
- 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 +184 -128
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -21
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +224 -210
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -63
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -21
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +131 -141
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -21
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +43 -6
- 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/INftOwnable.sol/INftOwnable.json +19 -0
- 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/IRegisterable.sol/IRegisterable.json +19 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -21
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +43 -6
- 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 +21 -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 +19 -0
- 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 +29 -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/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.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 +1450 -140
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +161 -110
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1565 -229
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +129 -70
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +200 -157
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +86 -52
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1633 -819
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +159 -87
- 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 +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- 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/Fee.sol/FeeLib.json +93 -37
- 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 +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.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 +33 -31
- 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 +9 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +15 -3
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +389 -298
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +40 -31
- package/contracts/authorization/Authorization.sol +60 -228
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +81 -80
- package/contracts/authorization/IAuthorization.sol +3 -51
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +248 -34
- package/contracts/distribution/BasicDistribution.sol +13 -11
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +20 -60
- package/contracts/distribution/DistributionService.sol +165 -74
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +34 -19
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +7 -12
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +87 -27
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +99 -14
- package/contracts/instance/IInstanceService.sol +54 -7
- package/contracts/instance/Instance.sol +166 -70
- package/contracts/instance/InstanceAdmin.sol +227 -296
- package/contracts/instance/InstanceAuthorizationV3.sol +121 -60
- package/contracts/instance/InstanceReader.sol +378 -373
- package/contracts/instance/InstanceService.sol +283 -173
- package/contracts/instance/InstanceStore.sol +9 -82
- package/contracts/instance/ProductStore.sol +235 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +16 -5
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +2 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +2 -4
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +3 -16
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +7 -2
- package/contracts/pool/Pool.sol +4 -16
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -184
- package/contracts/product/ApplicationService.sol +85 -17
- package/contracts/product/BasicProduct.sol +1 -3
- package/contracts/product/BasicProductAuthorization.sol +11 -4
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +24 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IRiskService.sol +25 -10
- package/contracts/product/PolicyService.sol +41 -103
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +33 -31
- package/contracts/product/Product.sol +44 -29
- package/contracts/product/RiskService.sol +63 -18
- package/contracts/registry/IRegistry.sol +15 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +100 -263
- package/contracts/registry/RegistryAuthorization.sol +336 -0
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +62 -112
- package/contracts/registry/ReleaseRegistry.sol +57 -43
- package/contracts/registry/ServiceAuthorizationV3.sol +48 -32
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +17 -29
- package/contracts/shared/ComponentService.sol +249 -238
- package/contracts/shared/ContractLib.sol +134 -75
- package/contracts/shared/IComponent.sol +1 -4
- package/contracts/shared/IComponentService.sol +21 -19
- package/contracts/shared/IKeyValueStore.sol +9 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +4 -7
- package/contracts/shared/KeyValueStore.sol +3 -3
- package/contracts/shared/NftOwnable.sol +4 -2
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Registerable.sol +1 -4
- package/contracts/shared/Service.sol +6 -4
- package/contracts/shared/TokenHandler.sol +5 -4
- package/contracts/staking/IStaking.sol +266 -64
- package/contracts/staking/IStakingService.sol +44 -82
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +474 -202
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +49 -158
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +15 -15
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +21 -17
- package/contracts/type/RiskId.sol +4 -3
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/type/Version.sol +39 -0
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +25 -11
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/staking/StakingLifecycle.sol +0 -23
package/contracts/pool/Pool.sol
CHANGED
@@ -123,11 +123,10 @@ abstract contract Pool is
|
|
123
123
|
|
124
124
|
// Internals
|
125
125
|
|
126
|
-
function
|
126
|
+
function __Pool_init(
|
127
127
|
address registry,
|
128
128
|
NftId productNftId,
|
129
129
|
string memory name,
|
130
|
-
address token,
|
131
130
|
IComponents.PoolInfo memory poolInfo,
|
132
131
|
IAuthorization authorization,
|
133
132
|
address initialOwner,
|
@@ -137,11 +136,10 @@ abstract contract Pool is
|
|
137
136
|
virtual
|
138
137
|
onlyInitializing()
|
139
138
|
{
|
140
|
-
|
139
|
+
__InstanceLinkedComponent_init(
|
141
140
|
registry,
|
142
141
|
productNftId,
|
143
142
|
name,
|
144
|
-
token,
|
145
143
|
POOL(),
|
146
144
|
authorization,
|
147
145
|
poolInfo.isInterceptingBundleTransfers,
|
@@ -285,21 +283,11 @@ abstract contract Pool is
|
|
285
283
|
/// @dev Locks the specified bundle.
|
286
284
|
/// A bundle to be locked MUST be in active state.
|
287
285
|
/// Locked bundles may not be used to collateralize any new policy.
|
288
|
-
function
|
286
|
+
function _setBundleLocked(NftId bundleNftId, bool locked)
|
289
287
|
internal
|
290
288
|
virtual
|
291
289
|
{
|
292
|
-
_getPoolStorage()._bundleService.
|
293
|
-
}
|
294
|
-
|
295
|
-
|
296
|
-
/// @dev Unlocks the specified bundle.
|
297
|
-
/// A bundle to be unlocked MUST be in locked state.
|
298
|
-
function _unlockBundle(NftId bundleNftId)
|
299
|
-
internal
|
300
|
-
virtual
|
301
|
-
{
|
302
|
-
_getPoolStorage()._bundleService.unlock(bundleNftId);
|
290
|
+
_getPoolStorage()._bundleService.setLocked(bundleNftId, locked);
|
303
291
|
}
|
304
292
|
|
305
293
|
|
@@ -15,6 +15,8 @@ import {InstanceReader} from "../instance/InstanceReader.sol";
|
|
15
15
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
16
16
|
import {NftId} from "../type/NftId.sol";
|
17
17
|
import {ObjectType, BUNDLE, POOL} from "../type/ObjectType.sol";
|
18
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
19
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
18
20
|
import {UFixed} from "../type/UFixed.sol";
|
19
21
|
|
20
22
|
library PoolLib {
|
@@ -105,7 +107,7 @@ library PoolLib {
|
|
105
107
|
Amount payoutAmount,
|
106
108
|
address payoutBeneficiary
|
107
109
|
)
|
108
|
-
|
110
|
+
public
|
109
111
|
view
|
110
112
|
returns (
|
111
113
|
Amount netPayoutAmount,
|
@@ -127,7 +129,7 @@ library PoolLib {
|
|
127
129
|
// calculate processing fees if applicable
|
128
130
|
IComponents.FeeInfo memory feeInfo = instanceReader.getFeeInfo(productNftId);
|
129
131
|
if(FeeLib.gtz(feeInfo.processingFee)) {
|
130
|
-
|
132
|
+
(processingFeeAmount, netPayoutAmount) = FeeLib.calculateFee(feeInfo.processingFee, payoutAmount);
|
131
133
|
}
|
132
134
|
}
|
133
135
|
}
|
@@ -204,6 +206,32 @@ library PoolLib {
|
|
204
206
|
instance = IInstance(instanceAddress);
|
205
207
|
}
|
206
208
|
|
209
|
+
|
210
|
+
function getAndVerifyActiveComponent(
|
211
|
+
IRegistry registry,
|
212
|
+
address sender,
|
213
|
+
ObjectType expectedComponentType
|
214
|
+
)
|
215
|
+
public
|
216
|
+
view
|
217
|
+
returns (
|
218
|
+
NftId componentNftId,
|
219
|
+
IInstance instance
|
220
|
+
)
|
221
|
+
{
|
222
|
+
(
|
223
|
+
IRegistry.ObjectInfo memory info,
|
224
|
+
address instanceAddress
|
225
|
+
) = ContractLib.getAndVerifyComponent(
|
226
|
+
registry,
|
227
|
+
sender,
|
228
|
+
expectedComponentType,
|
229
|
+
true); // only active components
|
230
|
+
|
231
|
+
componentNftId = info.nftId;
|
232
|
+
instance = IInstance(instanceAddress);
|
233
|
+
}
|
234
|
+
|
207
235
|
function checkNftType(
|
208
236
|
IRegistry registry,
|
209
237
|
NftId nftId,
|
@@ -213,4 +241,101 @@ library PoolLib {
|
|
213
241
|
revert INftOwnable.ErrorNftOwnableInvalidType(nftId, expectedObjectType);
|
214
242
|
}
|
215
243
|
}
|
244
|
+
|
245
|
+
function transferTokenAndNotifyPolicyHolder(
|
246
|
+
IRegistry registry,
|
247
|
+
InstanceReader instanceReader,
|
248
|
+
TokenHandler poolTokenHandler,
|
249
|
+
NftId productNftId,
|
250
|
+
NftId policyNftId,
|
251
|
+
PayoutId payoutId,
|
252
|
+
Amount payoutAmount,
|
253
|
+
address payoutBeneficiary
|
254
|
+
)
|
255
|
+
external
|
256
|
+
returns (
|
257
|
+
Amount netPayoutAmount,
|
258
|
+
Amount processingFeeAmount
|
259
|
+
)
|
260
|
+
{
|
261
|
+
address beneficiary;
|
262
|
+
|
263
|
+
(
|
264
|
+
netPayoutAmount,
|
265
|
+
processingFeeAmount,
|
266
|
+
beneficiary
|
267
|
+
) = calculatePayoutAmounts(
|
268
|
+
registry,
|
269
|
+
instanceReader,
|
270
|
+
productNftId,
|
271
|
+
policyNftId,
|
272
|
+
payoutAmount,
|
273
|
+
payoutBeneficiary);
|
274
|
+
|
275
|
+
// 1st token tx to payout to beneficiary
|
276
|
+
poolTokenHandler.pushToken(
|
277
|
+
beneficiary,
|
278
|
+
netPayoutAmount);
|
279
|
+
|
280
|
+
// 2nd token tx to transfer processing fees to product wallet
|
281
|
+
// if processingFeeAmount > 0
|
282
|
+
if (processingFeeAmount.gtz()) {
|
283
|
+
poolTokenHandler.pushToken(
|
284
|
+
instanceReader.getWallet(productNftId),
|
285
|
+
processingFeeAmount);
|
286
|
+
}
|
287
|
+
|
288
|
+
// callback to policy holder if applicable
|
289
|
+
policyHolderPayoutExecuted(
|
290
|
+
registry,
|
291
|
+
policyNftId,
|
292
|
+
payoutId,
|
293
|
+
beneficiary,
|
294
|
+
netPayoutAmount);
|
295
|
+
}
|
296
|
+
|
297
|
+
function policyHolderPayoutExecuted(
|
298
|
+
IRegistry registry,
|
299
|
+
NftId policyNftId,
|
300
|
+
PayoutId payoutId,
|
301
|
+
address beneficiary,
|
302
|
+
Amount payoutAmount
|
303
|
+
)
|
304
|
+
private
|
305
|
+
{
|
306
|
+
IPolicyHolder policyHolder = getPolicyHolder(registry, policyNftId);
|
307
|
+
if(address(policyHolder) != address(0)) {
|
308
|
+
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
309
|
+
}
|
310
|
+
}
|
311
|
+
|
312
|
+
/// @dev Transfers the specified amount from the "from account" to the pool's wallet
|
313
|
+
function pullStakingAmount(
|
314
|
+
InstanceReader reader,
|
315
|
+
NftId poolNftId,
|
316
|
+
address from,
|
317
|
+
Amount amount
|
318
|
+
)
|
319
|
+
external
|
320
|
+
{
|
321
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
322
|
+
info.tokenHandler.pullToken(
|
323
|
+
from,
|
324
|
+
amount);
|
325
|
+
}
|
326
|
+
|
327
|
+
/// @dev Transfers the specified amount from the pool's wallet to the "to account"
|
328
|
+
function pushUnstakingAmount(
|
329
|
+
InstanceReader reader,
|
330
|
+
NftId poolNftId,
|
331
|
+
address to,
|
332
|
+
Amount amount
|
333
|
+
)
|
334
|
+
external
|
335
|
+
{
|
336
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
337
|
+
info.tokenHandler.pushToken(
|
338
|
+
to,
|
339
|
+
amount);
|
340
|
+
}
|
216
341
|
}
|
@@ -2,13 +2,11 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
5
|
-
import {IBundle} from "../instance/module/IBundle.sol";
|
6
5
|
import {IBundleService} from "./IBundleService.sol";
|
7
6
|
import {IComponents} from "../instance/module/IComponents.sol";
|
8
7
|
import {IComponentService} from "../shared/IComponentService.sol";
|
9
8
|
import {IInstance} from "../instance/IInstance.sol";
|
10
9
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
|
-
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
12
10
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
13
11
|
import {IPoolService} from "./IPoolService.sol";
|
14
12
|
import {IProductComponent} from "../product/IProductComponent.sol";
|
@@ -27,9 +25,6 @@ import {PayoutId} from "../type/PayoutId.sol";
|
|
27
25
|
import {PoolLib} from "./PoolLib.sol";
|
28
26
|
import {Service} from "../shared/Service.sol";
|
29
27
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
30
|
-
import {UFixed} from "../type/UFixed.sol";
|
31
|
-
|
32
|
-
string constant POOL_SERVICE_NAME = "PoolService";
|
33
28
|
|
34
29
|
|
35
30
|
contract PoolService is
|
@@ -69,6 +64,7 @@ contract PoolService is
|
|
69
64
|
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
70
65
|
external
|
71
66
|
virtual
|
67
|
+
restricted()
|
72
68
|
{
|
73
69
|
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
74
70
|
InstanceReader instanceReader = instance.getInstanceReader();
|
@@ -84,6 +80,7 @@ contract PoolService is
|
|
84
80
|
|
85
81
|
function closeBundle(NftId bundleNftId)
|
86
82
|
external
|
83
|
+
restricted()
|
87
84
|
virtual
|
88
85
|
{
|
89
86
|
_checkNftType(bundleNftId, BUNDLE());
|
@@ -119,6 +116,7 @@ contract PoolService is
|
|
119
116
|
Amount availableAmount
|
120
117
|
)
|
121
118
|
external
|
119
|
+
restricted()
|
122
120
|
virtual
|
123
121
|
{
|
124
122
|
_checkNftType(policyNftId, POLICY());
|
@@ -175,7 +173,7 @@ contract PoolService is
|
|
175
173
|
function stake(NftId bundleNftId, Amount amount)
|
176
174
|
external
|
177
175
|
virtual
|
178
|
-
|
176
|
+
restricted()
|
179
177
|
returns(
|
180
178
|
Amount netAmount
|
181
179
|
)
|
@@ -222,7 +220,7 @@ contract PoolService is
|
|
222
220
|
|
223
221
|
// collect tokens from bundle owner
|
224
222
|
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
225
|
-
|
223
|
+
PoolLib.pullStakingAmount(
|
226
224
|
instanceReader,
|
227
225
|
poolNftId,
|
228
226
|
bundleOwner,
|
@@ -235,7 +233,7 @@ contract PoolService is
|
|
235
233
|
function unstake(NftId bundleNftId, Amount amount)
|
236
234
|
external
|
237
235
|
virtual
|
238
|
-
|
236
|
+
restricted()
|
239
237
|
returns(Amount netAmount)
|
240
238
|
{
|
241
239
|
(
|
@@ -269,7 +267,7 @@ contract PoolService is
|
|
269
267
|
|
270
268
|
// transfer amount to bundle owner
|
271
269
|
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
272
|
-
|
270
|
+
PoolLib.pushUnstakingAmount(
|
273
271
|
instanceReader,
|
274
272
|
poolNftId,
|
275
273
|
bundleOwner,
|
@@ -281,7 +279,7 @@ contract PoolService is
|
|
281
279
|
function fundPoolWallet(Amount amount)
|
282
280
|
external
|
283
281
|
virtual
|
284
|
-
|
282
|
+
restricted()
|
285
283
|
{
|
286
284
|
(
|
287
285
|
NftId poolNftId,
|
@@ -297,7 +295,7 @@ contract PoolService is
|
|
297
295
|
address poolOwner = getRegistry().ownerOf(poolNftId);
|
298
296
|
emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
|
299
297
|
|
300
|
-
|
298
|
+
PoolLib.pullStakingAmount(
|
301
299
|
reader,
|
302
300
|
poolNftId,
|
303
301
|
poolOwner,
|
@@ -308,7 +306,7 @@ contract PoolService is
|
|
308
306
|
function defundPoolWallet(Amount amount)
|
309
307
|
external
|
310
308
|
virtual
|
311
|
-
|
309
|
+
restricted()
|
312
310
|
{
|
313
311
|
(
|
314
312
|
NftId poolNftId,
|
@@ -324,7 +322,7 @@ contract PoolService is
|
|
324
322
|
address poolOwner = getRegistry().ownerOf(poolNftId);
|
325
323
|
emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
|
326
324
|
|
327
|
-
|
325
|
+
PoolLib.pushUnstakingAmount(
|
328
326
|
reader,
|
329
327
|
poolNftId,
|
330
328
|
poolOwner,
|
@@ -363,6 +361,8 @@ contract PoolService is
|
|
363
361
|
bundleNftId,
|
364
362
|
bundleNetAmount,
|
365
363
|
bundleFeeAmount);
|
364
|
+
|
365
|
+
emit LogPoolServiceSaleProcessed(poolNftId, bundleNftId, bundleNetAmount, bundleFeeAmount, poolFeeAmount);
|
366
366
|
}
|
367
367
|
|
368
368
|
|
@@ -421,10 +421,15 @@ contract PoolService is
|
|
421
421
|
bundleNftId,
|
422
422
|
totalCollateralAmount);
|
423
423
|
|
424
|
-
|
424
|
+
emit LogPoolServiceApplicationVerified(poolNftId, bundleNftId, applicationNftId, totalCollateralAmount);
|
425
425
|
}
|
426
426
|
|
427
|
-
|
427
|
+
emit LogPoolServiceCollateralLocked(
|
428
|
+
poolNftId,
|
429
|
+
bundleNftId,
|
430
|
+
applicationNftId,
|
431
|
+
totalCollateralAmount,
|
432
|
+
localCollateralAmount);
|
428
433
|
}
|
429
434
|
|
430
435
|
function processPayout(
|
@@ -440,6 +445,10 @@ contract PoolService is
|
|
440
445
|
external
|
441
446
|
virtual
|
442
447
|
restricted()
|
448
|
+
returns (
|
449
|
+
Amount netPayoutAmount,
|
450
|
+
Amount processingFeeAmount
|
451
|
+
)
|
443
452
|
{
|
444
453
|
// checks
|
445
454
|
_checkNftType(policyNftId, POLICY());
|
@@ -466,9 +475,7 @@ contract PoolService is
|
|
466
475
|
payoutAmount);
|
467
476
|
|
468
477
|
// update value locked with staking service
|
469
|
-
TokenHandler poolTokenHandler =
|
470
|
-
instanceReader.getTokenHandler(
|
471
|
-
poolNftId));
|
478
|
+
TokenHandler poolTokenHandler = instanceReader.getTokenHandler(poolNftId);
|
472
479
|
|
473
480
|
_staking.decreaseTotalValueLocked(
|
474
481
|
instanceReader.getInstanceNftId(),
|
@@ -476,7 +483,8 @@ contract PoolService is
|
|
476
483
|
payoutAmount);
|
477
484
|
|
478
485
|
// interactions
|
479
|
-
|
486
|
+
(netPayoutAmount, processingFeeAmount) = PoolLib.transferTokenAndNotifyPolicyHolder(
|
487
|
+
getRegistry(),
|
480
488
|
instanceReader,
|
481
489
|
poolTokenHandler,
|
482
490
|
productNftId,
|
@@ -484,50 +492,22 @@ contract PoolService is
|
|
484
492
|
payoutId,
|
485
493
|
payoutAmount,
|
486
494
|
payoutBeneficiary);
|
487
|
-
|
488
|
-
|
489
|
-
function _transferTokenAndNotifyPolicyHolder(
|
490
|
-
InstanceReader instanceReader,
|
491
|
-
TokenHandler poolTokenHandler,
|
492
|
-
NftId productNftId,
|
493
|
-
NftId policyNftId,
|
494
|
-
PayoutId payoutId,
|
495
|
-
Amount payoutAmount,
|
496
|
-
address payoutBeneficiary
|
497
|
-
)
|
498
|
-
internal
|
499
|
-
{
|
500
|
-
(
|
501
|
-
Amount netPayoutAmount,
|
502
|
-
Amount processingFeeAmount,
|
503
|
-
address beneficiary
|
504
|
-
) = PoolLib.calculatePayoutAmounts(
|
505
|
-
getRegistry(),
|
506
|
-
instanceReader,
|
507
|
-
productNftId,
|
508
|
-
policyNftId,
|
509
|
-
payoutAmount,
|
510
|
-
payoutBeneficiary);
|
511
|
-
|
512
|
-
// 1st token tx to payout to beneficiary
|
513
|
-
poolTokenHandler.pushToken(
|
514
|
-
beneficiary,
|
515
|
-
netPayoutAmount);
|
516
|
-
|
517
|
-
// 2nd token tx to transfer processing fees to product wallet
|
518
|
-
// if processingFeeAmount > 0
|
495
|
+
|
519
496
|
if (processingFeeAmount.gtz()) {
|
520
|
-
|
521
|
-
|
497
|
+
_accountingService.increaseProductFeesForPool(
|
498
|
+
instanceStore,
|
499
|
+
productNftId,
|
522
500
|
processingFeeAmount);
|
523
501
|
}
|
524
502
|
|
525
|
-
|
526
|
-
|
503
|
+
emit LogPoolServicePayoutProcessed(
|
504
|
+
poolNftId,
|
505
|
+
bundleNftId,
|
527
506
|
policyNftId,
|
528
507
|
payoutId,
|
529
|
-
|
530
|
-
|
508
|
+
netPayoutAmount,
|
509
|
+
processingFeeAmount,
|
510
|
+
payoutBeneficiary);
|
531
511
|
}
|
532
512
|
|
533
513
|
|
@@ -607,112 +587,11 @@ contract PoolService is
|
|
607
587
|
instanceReader.getInstanceNftId(),
|
608
588
|
address(instanceReader.getToken(policyInfo.productNftId)),
|
609
589
|
remainingCollateralAmount);
|
610
|
-
}
|
611
|
-
|
612
|
-
|
613
|
-
// function calculateRequiredCollateral(
|
614
|
-
// InstanceReader instanceReader,
|
615
|
-
// NftId productNftId,
|
616
|
-
// Amount sumInsuredAmount
|
617
|
-
// )
|
618
|
-
// public
|
619
|
-
// view
|
620
|
-
// returns(
|
621
|
-
// NftId poolNftId,
|
622
|
-
// Amount totalCollateralAmount,
|
623
|
-
// Amount localCollateralAmount,
|
624
|
-
// bool poolIsVerifyingApplications
|
625
|
-
// )
|
626
|
-
// {
|
627
|
-
// return CollateralLib.calculateRequiredCollateral(
|
628
|
-
// instanceReader,
|
629
|
-
// productNftId,
|
630
|
-
// sumInsuredAmount);
|
631
|
-
// }
|
632
590
|
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
// poolIsVerifyingApplications = poolInfo.isVerifyingApplications;
|
638
|
-
|
639
|
-
// (
|
640
|
-
// totalCollateralAmount,
|
641
|
-
// localCollateralAmount
|
642
|
-
// ) = calculateRequiredCollateral(
|
643
|
-
// poolInfo.collateralizationLevel,
|
644
|
-
// poolInfo.retentionLevel,
|
645
|
-
// sumInsuredAmount);
|
646
|
-
// }
|
647
|
-
|
648
|
-
|
649
|
-
// function calculateRequiredCollateral(
|
650
|
-
// UFixed collateralizationLevel,
|
651
|
-
// UFixed retentionLevel,
|
652
|
-
// Amount sumInsuredAmount
|
653
|
-
// )
|
654
|
-
// public
|
655
|
-
// pure
|
656
|
-
// returns(
|
657
|
-
// Amount totalCollateralAmount,
|
658
|
-
// Amount localCollateralAmount
|
659
|
-
// )
|
660
|
-
// {
|
661
|
-
// // collateralization is applied to sum insured
|
662
|
-
// UFixed totalUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
|
663
|
-
// totalCollateralAmount = AmountLib.toAmount(totalUFixed.toInt());
|
664
|
-
|
665
|
-
// // retention level defines how much capital is required locally
|
666
|
-
// localCollateralAmount = AmountLib.toAmount(
|
667
|
-
// (retentionLevel * totalUFixed).toInt());
|
668
|
-
// }
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
function _policyHolderPayoutExecuted(
|
674
|
-
NftId policyNftId,
|
675
|
-
PayoutId payoutId,
|
676
|
-
address beneficiary,
|
677
|
-
Amount payoutAmount
|
678
|
-
)
|
679
|
-
internal
|
680
|
-
{
|
681
|
-
IPolicyHolder policyHolder = PoolLib.getPolicyHolder(getRegistry(), policyNftId);
|
682
|
-
if(address(policyHolder) != address(0)) {
|
683
|
-
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
684
|
-
}
|
685
|
-
}
|
686
|
-
|
687
|
-
|
688
|
-
/// @dev Transfers the specified amount from the "from account" to the pool's wallet
|
689
|
-
function _pullStakingAmount(
|
690
|
-
InstanceReader reader,
|
691
|
-
NftId poolNftId,
|
692
|
-
address from,
|
693
|
-
Amount amount
|
694
|
-
)
|
695
|
-
internal
|
696
|
-
{
|
697
|
-
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
698
|
-
info.tokenHandler.pullToken(
|
699
|
-
from,
|
700
|
-
amount);
|
701
|
-
}
|
702
|
-
|
703
|
-
/// @dev Transfers the specified amount from the pool's wallet to the "to account"
|
704
|
-
function _pushUnstakingAmount(
|
705
|
-
InstanceReader reader,
|
706
|
-
NftId poolNftId,
|
707
|
-
address to,
|
708
|
-
Amount amount
|
709
|
-
)
|
710
|
-
internal
|
711
|
-
{
|
712
|
-
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
713
|
-
info.tokenHandler.pushToken(
|
714
|
-
to,
|
715
|
-
amount);
|
591
|
+
emit LogPoolServiceCollateralReleased(
|
592
|
+
policyInfo.bundleNftId,
|
593
|
+
policyNftId,
|
594
|
+
remainingCollateralAmount);
|
716
595
|
}
|
717
596
|
|
718
597
|
|
@@ -728,28 +607,6 @@ contract PoolService is
|
|
728
607
|
return PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
729
608
|
}
|
730
609
|
|
731
|
-
// function _getAndVerifyActivePool()
|
732
|
-
// internal
|
733
|
-
// virtual
|
734
|
-
// view
|
735
|
-
// returns (
|
736
|
-
// NftId poolNftId,
|
737
|
-
// IInstance instance
|
738
|
-
// )
|
739
|
-
// {
|
740
|
-
// (
|
741
|
-
// IRegistry.ObjectInfo memory info,
|
742
|
-
// address instanceAddress
|
743
|
-
// ) = ContractLib.getAndVerifyComponent(
|
744
|
-
// getRegistry(),
|
745
|
-
// msg.sender,
|
746
|
-
// POOL(),
|
747
|
-
// true); // only active pools
|
748
|
-
|
749
|
-
// poolNftId = info.nftId;
|
750
|
-
// instance = IInstance(instanceAddress);
|
751
|
-
// }
|
752
|
-
|
753
610
|
|
754
611
|
function _getDomain() internal pure override returns(ObjectType) {
|
755
612
|
return POOL();
|