@etherisc/gif-next 0.0.2-e026265-044 → 0.0.2-e04dbfc-031
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 +59 -10
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +495 -254
- 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/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +273 -16
- 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 +391 -199
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +139 -15
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +188 -447
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +261 -27
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +125 -365
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +485 -283
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +159 -109
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +133 -183
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +314 -86
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1491 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2048 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1447 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1671 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2448 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +224 -45
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +143 -98
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +243 -133
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +734 -324
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +205 -90
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1026 -298
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +171 -283
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +96 -96
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +640 -493
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -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 +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- 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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +139 -335
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +243 -29
- 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 +128 -126
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +115 -303
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +169 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +130 -88
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +162 -387
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +261 -27
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +343 -200
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +149 -95
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +206 -29
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +143 -195
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +464 -312
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +128 -370
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +472 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +683 -530
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +179 -97
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +208 -176
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +108 -90
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +258 -396
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +261 -27
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +431 -234
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +148 -114
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +136 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +365 -104
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +250 -198
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +88 -8
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +465 -307
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +727 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +145 -99
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +263 -308
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +128 -122
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +256 -394
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +370 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +72 -152
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +597 -80
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +641 -369
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1337 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +557 -512
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +138 -110
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -0
- 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/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +533 -233
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +117 -126
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -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 +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +104 -303
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +196 -122
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +151 -19
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +293 -365
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +135 -92
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +31 -63
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +220 -167
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -85
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +192 -132
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +69 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/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 +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/accounting/AccountingService.sol +261 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +338 -225
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +350 -203
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +69 -35
- package/contracts/authorization/IAuthorization.sol +33 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +19 -25
- package/contracts/distribution/BasicDistributionAuthorization.sol +26 -9
- package/contracts/distribution/Distribution.sol +42 -79
- package/contracts/distribution/DistributionService.sol +195 -108
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +9 -14
- package/contracts/distribution/IDistributionService.sol +40 -22
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +437 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +85 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +67 -48
- package/contracts/instance/IInstanceService.sol +26 -34
- package/contracts/instance/Instance.sol +114 -72
- package/contracts/instance/InstanceAdmin.sol +289 -105
- package/contracts/instance/InstanceAuthorizationV3.sol +99 -66
- package/contracts/instance/InstanceReader.sol +288 -43
- package/contracts/instance/InstanceService.sol +211 -192
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +24 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +11 -4
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +14 -15
- package/contracts/instance/module/IDistribution.sol +5 -3
- package/contracts/instance/module/IPolicy.sol +26 -25
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +21 -22
- package/contracts/oracle/OracleService.sol +117 -85
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +38 -27
- package/contracts/pool/BasicPoolAuthorization.sol +36 -9
- package/contracts/pool/BundleService.sol +204 -105
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +31 -22
- package/contracts/pool/IPoolComponent.sol +20 -10
- package/contracts/pool/IPoolService.sol +90 -75
- package/contracts/pool/Pool.sol +145 -111
- package/contracts/pool/PoolLib.sol +309 -0
- package/contracts/pool/PoolService.sol +562 -255
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +102 -78
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +13 -44
- package/contracts/product/BasicProductAuthorization.sol +25 -9
- package/contracts/product/ClaimService.sol +373 -175
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +9 -2
- package/contracts/product/IClaimService.sol +44 -8
- package/contracts/product/IPolicyService.sol +53 -36
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +28 -5
- package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
- package/contracts/product/PolicyService.sol +462 -273
- package/contracts/product/PolicyServiceLib.sol +119 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +71 -62
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +169 -92
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +74 -29
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +368 -216
- package/contracts/registry/RegistryAdmin.sol +166 -273
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +41 -66
- package/contracts/registry/RegistryServiceManager.sol +5 -5
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +517 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +184 -52
- package/contracts/registry/TokenRegistry.sol +8 -10
- package/contracts/shared/Component.sol +73 -127
- package/contracts/shared/ComponentService.sol +459 -344
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +281 -0
- package/contracts/shared/IComponent.sol +8 -17
- package/contracts/shared/IComponentService.sol +47 -39
- package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +4 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
- package/contracts/shared/InstanceLinkedComponent.sol +81 -35
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +32 -11
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +18 -36
- package/contracts/shared/TokenHandler.sol +310 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +20 -13
- package/contracts/staking/IStakingService.sol +31 -9
- package/contracts/staking/Staking.sol +117 -84
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +26 -33
- package/contracts/staking/StakingService.sol +93 -37
- package/contracts/staking/StakingServiceManager.sol +8 -7
- package/contracts/staking/StakingStore.sol +14 -23
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +60 -41
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +23 -15
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +35 -122
- package/contracts/type/Version.sol +57 -6
- package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +7 -6
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/base/ObjectManager.sol +0 -79
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -487
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
package/contracts/pool/Pool.sol
CHANGED
@@ -2,7 +2,8 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
|
-
import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
|
5
|
+
import {BUNDLE, COMPONENT, POLICY, POOL} from "../type/ObjectType.sol";
|
6
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
6
7
|
import {IBundleService} from "./IBundleService.sol";
|
7
8
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
9
|
import {IPoolComponent} from "./IPoolComponent.sol";
|
@@ -10,12 +11,13 @@ import {IPoolService} from "./IPoolService.sol";
|
|
10
11
|
import {IComponents} from "../instance/module/IComponents.sol";
|
11
12
|
import {IComponentService} from "../shared/IComponentService.sol";
|
12
13
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
13
|
-
import {
|
14
|
-
import {
|
14
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
15
|
+
import {Fee} from "../type/Fee.sol";
|
16
|
+
import {NftId} from "../type/NftId.sol";
|
15
17
|
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
16
18
|
import {Seconds} from "../type/Seconds.sol";
|
17
|
-
import {
|
18
|
-
import {UFixed
|
19
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
20
|
+
import {UFixed} from "../type/UFixed.sol";
|
19
21
|
|
20
22
|
abstract contract Pool is
|
21
23
|
InstanceLinkedComponent,
|
@@ -25,6 +27,7 @@ abstract contract Pool is
|
|
25
27
|
bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
|
26
28
|
|
27
29
|
struct PoolStorage {
|
30
|
+
IComponents.PoolInfo _poolInfo;
|
28
31
|
IComponentService _componentService;
|
29
32
|
IPoolService _poolService;
|
30
33
|
IBundleService _bundleService;
|
@@ -39,23 +42,29 @@ abstract contract Pool is
|
|
39
42
|
}
|
40
43
|
|
41
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
|
+
|
42
51
|
/// @dev see {IPoolComponent.verifyApplication}
|
43
52
|
function verifyApplication(
|
44
53
|
NftId applicationNftId,
|
45
|
-
bytes memory applicationData,
|
46
54
|
NftId bundleNftId,
|
47
|
-
bytes memory bundleFilter,
|
48
55
|
Amount collateralizationAmount
|
49
56
|
)
|
50
57
|
public
|
51
58
|
virtual
|
52
59
|
restricted()
|
60
|
+
onlyNftOfType(applicationNftId, POLICY())
|
53
61
|
{
|
62
|
+
InstanceReader reader = _getInstanceReader();
|
54
63
|
if(!applicationMatchesBundle(
|
55
64
|
applicationNftId,
|
56
|
-
applicationData,
|
65
|
+
reader.getPolicyInfo(applicationNftId).applicationData,
|
57
66
|
bundleNftId,
|
58
|
-
|
67
|
+
reader.getBundleInfo(bundleNftId).filter,
|
59
68
|
collateralizationAmount)
|
60
69
|
)
|
61
70
|
{
|
@@ -66,9 +75,25 @@ abstract contract Pool is
|
|
66
75
|
}
|
67
76
|
|
68
77
|
|
78
|
+
/// @dev see {IPoolComponent.processConfirmedClaim}
|
79
|
+
function processConfirmedClaim(
|
80
|
+
NftId policyNftId,
|
81
|
+
ClaimId claimId,
|
82
|
+
Amount amount
|
83
|
+
)
|
84
|
+
public
|
85
|
+
virtual
|
86
|
+
restricted()
|
87
|
+
onlyNftOfType(policyNftId, POLICY())
|
88
|
+
{
|
89
|
+
// default implementation is empty
|
90
|
+
}
|
91
|
+
|
92
|
+
|
69
93
|
/// @dev see {IPoolComponent.applicationMatchesBundle}
|
70
|
-
///
|
71
|
-
///
|
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.
|
72
97
|
function applicationMatchesBundle(
|
73
98
|
NftId applicationNftId,
|
74
99
|
bytes memory applicationData,
|
@@ -79,53 +104,33 @@ abstract contract Pool is
|
|
79
104
|
public
|
80
105
|
virtual
|
81
106
|
view
|
107
|
+
onlyNftOfType(applicationNftId, POLICY())
|
108
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
82
109
|
returns (bool isMatching)
|
83
110
|
{
|
84
111
|
return true;
|
85
112
|
}
|
86
113
|
|
87
114
|
|
88
|
-
function register()
|
89
|
-
external
|
90
|
-
virtual
|
91
|
-
onlyOwner()
|
92
|
-
{
|
93
|
-
_getPoolStorage()._componentService.registerPool();
|
94
|
-
}
|
95
|
-
|
96
|
-
|
97
115
|
function getInitialPoolInfo()
|
98
116
|
public
|
99
117
|
virtual
|
100
118
|
view
|
101
119
|
returns (IComponents.PoolInfo memory poolInfo)
|
102
120
|
{
|
103
|
-
return
|
104
|
-
NftIdLib.zero(), // will be set when GIF registers the related product
|
105
|
-
PUBLIC_ROLE(), // bundleOwnerRole
|
106
|
-
AmountLib.max(), // maxCapitalAmount,
|
107
|
-
isNftInterceptor(), // isInterceptingBundleTransfers
|
108
|
-
false, // isExternallyManaged,
|
109
|
-
false, // isVerifyingApplications,
|
110
|
-
UFixedLib.toUFixed(1), // collateralizationLevel,
|
111
|
-
UFixedLib.toUFixed(1), // retentionLevel,
|
112
|
-
FeeLib.zero(), // initialPoolFee,
|
113
|
-
FeeLib.zero(), // initialStakingFee,
|
114
|
-
FeeLib.zero() // initialPerformanceFee,
|
115
|
-
);
|
121
|
+
return _getPoolStorage()._poolInfo;
|
116
122
|
}
|
117
123
|
|
118
124
|
// Internals
|
119
125
|
|
120
126
|
function _initializePool(
|
121
127
|
address registry,
|
122
|
-
NftId
|
128
|
+
NftId productNftId,
|
123
129
|
string memory name,
|
124
130
|
address token,
|
131
|
+
IComponents.PoolInfo memory poolInfo,
|
125
132
|
IAuthorization authorization,
|
126
|
-
bool isInterceptingNftTransfers,
|
127
133
|
address initialOwner,
|
128
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
129
134
|
bytes memory componentData // component specifidc data
|
130
135
|
)
|
131
136
|
internal
|
@@ -134,24 +139,107 @@ abstract contract Pool is
|
|
134
139
|
{
|
135
140
|
_initializeInstanceLinkedComponent(
|
136
141
|
registry,
|
137
|
-
|
142
|
+
productNftId,
|
138
143
|
name,
|
139
144
|
token,
|
140
145
|
POOL(),
|
141
146
|
authorization,
|
142
|
-
|
147
|
+
poolInfo.isInterceptingBundleTransfers,
|
143
148
|
initialOwner,
|
144
|
-
registryData,
|
145
149
|
componentData);
|
146
150
|
|
147
151
|
PoolStorage storage $ = _getPoolStorage();
|
152
|
+
|
153
|
+
$._poolInfo = poolInfo;
|
148
154
|
$._poolService = IPoolService(_getServiceAddress(POOL()));
|
149
155
|
$._bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
150
156
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
151
157
|
|
152
|
-
|
158
|
+
_registerInterface(type(IPoolComponent).interfaceId);
|
159
|
+
}
|
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);
|
153
186
|
}
|
154
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
|
+
|
155
243
|
/// @dev increases the staked tokens by the specified amount
|
156
244
|
/// bundle MUST be in active or locked state
|
157
245
|
function _stake(
|
@@ -160,8 +248,9 @@ abstract contract Pool is
|
|
160
248
|
)
|
161
249
|
internal
|
162
250
|
virtual
|
251
|
+
returns(Amount)
|
163
252
|
{
|
164
|
-
|
253
|
+
return _getPoolStorage()._poolService.stake(bundleNftId, amount);
|
165
254
|
}
|
166
255
|
|
167
256
|
|
@@ -173,8 +262,9 @@ abstract contract Pool is
|
|
173
262
|
)
|
174
263
|
internal
|
175
264
|
virtual
|
265
|
+
returns(Amount netAmount)
|
176
266
|
{
|
177
|
-
|
267
|
+
return _getPoolStorage()._poolService.unstake(bundleNftId, amount);
|
178
268
|
}
|
179
269
|
|
180
270
|
|
@@ -186,8 +276,9 @@ abstract contract Pool is
|
|
186
276
|
)
|
187
277
|
internal
|
188
278
|
virtual
|
279
|
+
returns (Timestamp extendedExpiredAt)
|
189
280
|
{
|
190
|
-
|
281
|
+
return _getPoolStorage()._bundleService.extend(bundleNftId, lifetimeExtension);
|
191
282
|
}
|
192
283
|
|
193
284
|
|
@@ -217,7 +308,7 @@ abstract contract Pool is
|
|
217
308
|
/// To close a bundle all all linked policies MUST be in closed state as well.
|
218
309
|
/// Closing a bundle finalizes the bundle bookkeeping including overall profit calculation.
|
219
310
|
/// Once a bundle is closed this action cannot be reversed.
|
220
|
-
function
|
311
|
+
function _closeBundle(NftId bundleNftId)
|
221
312
|
internal
|
222
313
|
virtual
|
223
314
|
{
|
@@ -225,81 +316,24 @@ abstract contract Pool is
|
|
225
316
|
}
|
226
317
|
|
227
318
|
|
228
|
-
/// @dev
|
229
|
-
|
230
|
-
/// Via these fees individual bundler owner may earn income per policy in the context of peer to peer pools.
|
231
|
-
function _setBundleFee(
|
232
|
-
NftId bundleNftId,
|
233
|
-
Fee memory fee
|
234
|
-
)
|
319
|
+
/// @dev Withdraws the specified amount of fees from the bundle.
|
320
|
+
function _withdrawBundleFees(NftId bundleNftId, Amount amount)
|
235
321
|
internal
|
236
|
-
|
322
|
+
returns (Amount withdrawnAmount)
|
237
323
|
{
|
238
|
-
_getPoolStorage().
|
324
|
+
return _getPoolStorage()._poolService.withdrawBundleFees(bundleNftId, amount);
|
239
325
|
}
|
240
326
|
|
241
327
|
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
virtual
|
247
|
-
{
|
248
|
-
_getPoolStorage()._poolService.setMaxCapitalAmount(maxCapitalAmount);
|
249
|
-
}
|
250
|
-
|
251
|
-
/// @dev Sets the required role to create/own bundles.
|
252
|
-
/// May only be called once after setting up a pool.
|
253
|
-
/// May only be called by pool owner.
|
254
|
-
function _setBundleOwnerRole(RoleId bundleOwnerRole)
|
255
|
-
internal
|
256
|
-
virtual
|
257
|
-
{
|
258
|
-
_getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
|
259
|
-
}
|
260
|
-
|
261
|
-
|
262
|
-
/// @dev Update pool fees to the specified values.
|
263
|
-
/// Pool fee: are deducted from the premium amount and goes to the pool owner.
|
264
|
-
/// Staking fee: are deducted from the staked tokens by a bundle owner and goes to the pool owner.
|
265
|
-
/// Performance fee: when a bundle is closed a bundle specific profit is calculated.
|
266
|
-
/// The performance fee is deducted from this profit and goes to the pool owner.
|
267
|
-
function _setPoolFees(
|
268
|
-
Fee memory poolFee,
|
269
|
-
Fee memory stakingFee,
|
270
|
-
Fee memory performanceFee
|
271
|
-
)
|
272
|
-
internal
|
273
|
-
virtual
|
274
|
-
{
|
275
|
-
_getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
|
276
|
-
}
|
277
|
-
|
278
|
-
/// @dev Creates a new bundle using the provided parameter values.
|
279
|
-
function _createBundle(
|
280
|
-
address bundleOwner,
|
281
|
-
Fee memory fee,
|
282
|
-
Amount amount,
|
283
|
-
Seconds lifetime,
|
284
|
-
bytes memory filter
|
328
|
+
function _processFundedClaim(
|
329
|
+
NftId policyNftId,
|
330
|
+
ClaimId claimId,
|
331
|
+
Amount availableAmount
|
285
332
|
)
|
286
333
|
internal
|
287
|
-
returns(NftId bundleNftId)
|
288
334
|
{
|
289
|
-
|
290
|
-
|
291
|
-
fee,
|
292
|
-
amount,
|
293
|
-
lifetime,
|
294
|
-
filter);
|
295
|
-
|
296
|
-
// TODO add logging
|
297
|
-
}
|
298
|
-
|
299
|
-
|
300
|
-
// TODO remove function once this is no longer used to produce contract locations on the fly ...
|
301
|
-
function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
|
302
|
-
return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
|
335
|
+
_getPoolStorage()._poolService.processFundedClaim(
|
336
|
+
policyNftId, claimId, availableAmount);
|
303
337
|
}
|
304
338
|
|
305
339
|
|
@@ -0,0 +1,309 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
5
|
+
import {IInstance} from "../instance/IInstance.sol";
|
6
|
+
import {INftOwnable} from "../shared/INftOwnable.sol";
|
7
|
+
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
8
|
+
import {IPoolService} from "./IPoolService.sol";
|
9
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
10
|
+
|
11
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
12
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
13
|
+
import {Fee, FeeLib} from "../type/Fee.sol";
|
14
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
15
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
16
|
+
import {NftId} from "../type/NftId.sol";
|
17
|
+
import {ObjectType, BUNDLE, POOL} from "../type/ObjectType.sol";
|
18
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
19
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
20
|
+
import {UFixed} from "../type/UFixed.sol";
|
21
|
+
|
22
|
+
library PoolLib {
|
23
|
+
|
24
|
+
/// @dev Calulate required collateral for the provided parameters.
|
25
|
+
function calculateRequiredCollateral(
|
26
|
+
InstanceReader instanceReader,
|
27
|
+
NftId productNftId,
|
28
|
+
Amount sumInsuredAmount
|
29
|
+
)
|
30
|
+
public
|
31
|
+
view
|
32
|
+
returns(
|
33
|
+
NftId poolNftId,
|
34
|
+
Amount totalCollateralAmount,
|
35
|
+
Amount localCollateralAmount,
|
36
|
+
bool poolIsVerifyingApplications
|
37
|
+
)
|
38
|
+
{
|
39
|
+
poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
40
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
41
|
+
poolIsVerifyingApplications = poolInfo.isVerifyingApplications;
|
42
|
+
|
43
|
+
(
|
44
|
+
totalCollateralAmount,
|
45
|
+
localCollateralAmount
|
46
|
+
) = calculateRequiredCollateral(
|
47
|
+
poolInfo.collateralizationLevel,
|
48
|
+
poolInfo.retentionLevel,
|
49
|
+
sumInsuredAmount);
|
50
|
+
}
|
51
|
+
|
52
|
+
|
53
|
+
/// @dev calulate required collateral for the provided parameters.
|
54
|
+
/// Collateralization is applied to sum insured.
|
55
|
+
/// Retention level defines the fraction of the collateral that is required locally.
|
56
|
+
function calculateRequiredCollateral(
|
57
|
+
UFixed collateralizationLevel,
|
58
|
+
UFixed retentionLevel,
|
59
|
+
Amount sumInsuredAmount
|
60
|
+
)
|
61
|
+
public
|
62
|
+
pure
|
63
|
+
returns(
|
64
|
+
Amount totalCollateralAmount,
|
65
|
+
Amount localCollateralAmount
|
66
|
+
)
|
67
|
+
{
|
68
|
+
// collateralization is applied to sum insured
|
69
|
+
UFixed totalUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
|
70
|
+
totalCollateralAmount = AmountLib.toAmount(totalUFixed.toInt());
|
71
|
+
|
72
|
+
// retention level defines how much capital is required locally
|
73
|
+
localCollateralAmount = AmountLib.toAmount(
|
74
|
+
(retentionLevel * totalUFixed).toInt());
|
75
|
+
}
|
76
|
+
|
77
|
+
|
78
|
+
function calculateStakingAmounts(
|
79
|
+
IRegistry registry,
|
80
|
+
InstanceReader instanceReader,
|
81
|
+
NftId poolNftId,
|
82
|
+
Amount stakingAmount
|
83
|
+
)
|
84
|
+
public
|
85
|
+
view
|
86
|
+
returns (
|
87
|
+
Amount feeAmount,
|
88
|
+
Amount netStakingAmount
|
89
|
+
)
|
90
|
+
{
|
91
|
+
NftId productNftId = registry.getParentNftId(poolNftId);
|
92
|
+
Fee memory stakingFee = instanceReader.getFeeInfo(productNftId).stakingFee;
|
93
|
+
(
|
94
|
+
feeAmount,
|
95
|
+
netStakingAmount
|
96
|
+
) = FeeLib.calculateFee(
|
97
|
+
stakingFee,
|
98
|
+
stakingAmount);
|
99
|
+
}
|
100
|
+
|
101
|
+
|
102
|
+
function calculatePayoutAmounts(
|
103
|
+
IRegistry registry,
|
104
|
+
InstanceReader instanceReader,
|
105
|
+
NftId productNftId,
|
106
|
+
NftId policyNftId,
|
107
|
+
Amount payoutAmount,
|
108
|
+
address payoutBeneficiary
|
109
|
+
)
|
110
|
+
public
|
111
|
+
view
|
112
|
+
returns (
|
113
|
+
Amount netPayoutAmount,
|
114
|
+
Amount processingFeeAmount,
|
115
|
+
address beneficiary
|
116
|
+
)
|
117
|
+
{
|
118
|
+
// Amount payoutAmount = payoutInfo.amount;
|
119
|
+
|
120
|
+
if(payoutAmount.gtz()) {
|
121
|
+
netPayoutAmount = payoutAmount;
|
122
|
+
|
123
|
+
if (payoutBeneficiary == address(0)) {
|
124
|
+
beneficiary = registry.ownerOf(policyNftId);
|
125
|
+
} else {
|
126
|
+
beneficiary = payoutBeneficiary;
|
127
|
+
}
|
128
|
+
|
129
|
+
// calculate processing fees if applicable
|
130
|
+
IComponents.FeeInfo memory feeInfo = instanceReader.getFeeInfo(productNftId);
|
131
|
+
if(FeeLib.gtz(feeInfo.processingFee)) {
|
132
|
+
// TODO calculate and set net payout and processing fees
|
133
|
+
}
|
134
|
+
}
|
135
|
+
}
|
136
|
+
|
137
|
+
|
138
|
+
function getPolicyHolder(
|
139
|
+
IRegistry registry,
|
140
|
+
NftId policyNftId
|
141
|
+
)
|
142
|
+
internal
|
143
|
+
view
|
144
|
+
returns (IPolicyHolder policyHolder)
|
145
|
+
{
|
146
|
+
address policyHolderAddress = registry.ownerOf(policyNftId);
|
147
|
+
policyHolder = IPolicyHolder(policyHolderAddress);
|
148
|
+
|
149
|
+
if (!ContractLib.isPolicyHolder(policyHolderAddress)) {
|
150
|
+
policyHolder = IPolicyHolder(address(0));
|
151
|
+
}
|
152
|
+
}
|
153
|
+
|
154
|
+
|
155
|
+
function checkAndGetPoolInfo(
|
156
|
+
IRegistry registry,
|
157
|
+
address sender,
|
158
|
+
NftId bundleNftId
|
159
|
+
)
|
160
|
+
public
|
161
|
+
view
|
162
|
+
returns (
|
163
|
+
InstanceReader instanceReader,
|
164
|
+
InstanceStore instanceStore,
|
165
|
+
NftId instanceNftId,
|
166
|
+
NftId poolNftId,
|
167
|
+
IComponents.PoolInfo memory poolInfo
|
168
|
+
)
|
169
|
+
{
|
170
|
+
checkNftType(registry, bundleNftId, BUNDLE());
|
171
|
+
|
172
|
+
IInstance instance;
|
173
|
+
(poolNftId, instance) = getAndVerifyActivePool(registry, sender);
|
174
|
+
instanceReader = instance.getInstanceReader();
|
175
|
+
instanceStore = instance.getInstanceStore();
|
176
|
+
instanceNftId = instance.getNftId();
|
177
|
+
poolInfo = instanceReader.getPoolInfo(poolNftId);
|
178
|
+
|
179
|
+
if (registry.getParentNftId(bundleNftId) != poolNftId) {
|
180
|
+
revert IPoolService.ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
181
|
+
}
|
182
|
+
}
|
183
|
+
|
184
|
+
|
185
|
+
function getAndVerifyActivePool(
|
186
|
+
IRegistry registry,
|
187
|
+
address sender
|
188
|
+
)
|
189
|
+
public
|
190
|
+
view
|
191
|
+
returns (
|
192
|
+
NftId poolNftId,
|
193
|
+
IInstance instance
|
194
|
+
)
|
195
|
+
{
|
196
|
+
(
|
197
|
+
IRegistry.ObjectInfo memory info,
|
198
|
+
address instanceAddress
|
199
|
+
) = ContractLib.getAndVerifyComponent(
|
200
|
+
registry,
|
201
|
+
sender,
|
202
|
+
POOL(),
|
203
|
+
true); // only active pools
|
204
|
+
|
205
|
+
poolNftId = info.nftId;
|
206
|
+
instance = IInstance(instanceAddress);
|
207
|
+
}
|
208
|
+
|
209
|
+
function checkNftType(
|
210
|
+
IRegistry registry,
|
211
|
+
NftId nftId,
|
212
|
+
ObjectType expectedObjectType
|
213
|
+
) internal view {
|
214
|
+
if(!registry.isObjectType(nftId, expectedObjectType)) {
|
215
|
+
revert INftOwnable.ErrorNftOwnableInvalidType(nftId, expectedObjectType);
|
216
|
+
}
|
217
|
+
}
|
218
|
+
|
219
|
+
function transferTokenAndNotifyPolicyHolder(
|
220
|
+
IRegistry registry,
|
221
|
+
InstanceReader instanceReader,
|
222
|
+
TokenHandler poolTokenHandler,
|
223
|
+
NftId productNftId,
|
224
|
+
NftId policyNftId,
|
225
|
+
PayoutId payoutId,
|
226
|
+
Amount payoutAmount,
|
227
|
+
address payoutBeneficiary
|
228
|
+
)
|
229
|
+
external
|
230
|
+
{
|
231
|
+
(
|
232
|
+
Amount netPayoutAmount,
|
233
|
+
Amount processingFeeAmount,
|
234
|
+
address beneficiary
|
235
|
+
) = calculatePayoutAmounts(
|
236
|
+
registry,
|
237
|
+
instanceReader,
|
238
|
+
productNftId,
|
239
|
+
policyNftId,
|
240
|
+
payoutAmount,
|
241
|
+
payoutBeneficiary);
|
242
|
+
|
243
|
+
// 1st token tx to payout to beneficiary
|
244
|
+
poolTokenHandler.pushToken(
|
245
|
+
beneficiary,
|
246
|
+
netPayoutAmount);
|
247
|
+
|
248
|
+
// 2nd token tx to transfer processing fees to product wallet
|
249
|
+
// if processingFeeAmount > 0
|
250
|
+
if (processingFeeAmount.gtz()) {
|
251
|
+
poolTokenHandler.pushToken(
|
252
|
+
instanceReader.getWallet(productNftId),
|
253
|
+
processingFeeAmount);
|
254
|
+
}
|
255
|
+
|
256
|
+
// callback to policy holder if applicable
|
257
|
+
policyHolderPayoutExecuted(
|
258
|
+
registry,
|
259
|
+
policyNftId,
|
260
|
+
payoutId,
|
261
|
+
beneficiary,
|
262
|
+
netPayoutAmount);
|
263
|
+
}
|
264
|
+
|
265
|
+
function policyHolderPayoutExecuted(
|
266
|
+
IRegistry registry,
|
267
|
+
NftId policyNftId,
|
268
|
+
PayoutId payoutId,
|
269
|
+
address beneficiary,
|
270
|
+
Amount payoutAmount
|
271
|
+
)
|
272
|
+
private
|
273
|
+
{
|
274
|
+
IPolicyHolder policyHolder = getPolicyHolder(registry, policyNftId);
|
275
|
+
if(address(policyHolder) != address(0)) {
|
276
|
+
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
277
|
+
}
|
278
|
+
}
|
279
|
+
|
280
|
+
/// @dev Transfers the specified amount from the "from account" to the pool's wallet
|
281
|
+
function pullStakingAmount(
|
282
|
+
InstanceReader reader,
|
283
|
+
NftId poolNftId,
|
284
|
+
address from,
|
285
|
+
Amount amount
|
286
|
+
)
|
287
|
+
external
|
288
|
+
{
|
289
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
290
|
+
info.tokenHandler.pullToken(
|
291
|
+
from,
|
292
|
+
amount);
|
293
|
+
}
|
294
|
+
|
295
|
+
/// @dev Transfers the specified amount from the pool's wallet to the "to account"
|
296
|
+
function pushUnstakingAmount(
|
297
|
+
InstanceReader reader,
|
298
|
+
NftId poolNftId,
|
299
|
+
address to,
|
300
|
+
Amount amount
|
301
|
+
)
|
302
|
+
external
|
303
|
+
{
|
304
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
305
|
+
info.tokenHandler.pushToken(
|
306
|
+
to,
|
307
|
+
amount);
|
308
|
+
}
|
309
|
+
}
|