@etherisc/gif-next 0.0.2-bf51045-496 → 0.0.2-bf9f7e6-880
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 +44 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +69 -62
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +29 -31
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +33 -9
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +454 -253
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
- 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 +227 -26
- 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 +353 -189
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +105 -18
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +74 -157
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +212 -38
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +39 -95
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +271 -185
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +66 -60
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +26 -82
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +159 -72
- 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 +92 -88
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +193 -51
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +248 -237
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +212 -38
- 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 +132 -173
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +212 -38
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +75 -68
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +123 -116
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +193 -51
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +338 -242
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +212 -38
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +158 -29
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +108 -9
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +187 -54
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +677 -325
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +193 -51
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +496 -324
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +121 -85
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +26 -38
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +619 -559
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- 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/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +60 -51
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +194 -40
- 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 +30 -21
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +44 -35
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +75 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -36
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +65 -56
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +193 -51
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +108 -207
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +42 -64
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +44 -86
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +40 -31
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +138 -193
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +53 -44
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +254 -299
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +70 -56
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +123 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +37 -27
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +176 -152
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +212 -38
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +64 -74
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +69 -3
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +105 -68
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +48 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +157 -133
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +58 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +193 -173
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +54 -56
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +96 -108
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +35 -57
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +170 -146
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +131 -81
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +46 -28
- 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 +36 -12
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
- 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/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +74 -50
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +553 -434
- 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 +51 -44
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +22 -24
- 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 +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +333 -63
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +43 -34
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +147 -165
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +48 -50
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +113 -4
- 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 +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 +30 -21
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +71 -72
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +30 -21
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
- 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 +43 -34
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
- 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 +27 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +113 -39
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +131 -7
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +169 -97
- 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 +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +44 -32
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +34 -61
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +168 -53
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -29
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +148 -134
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +47 -37
- 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/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 +30 -6
- 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/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/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 +2 -2
- 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 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +4 -4
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +3 -4
- package/contracts/accounting/AccountingServiceManager.sol +1 -1
- package/contracts/accounting/IAccountingService.sol +2 -2
- package/contracts/authorization/AccessAdmin.sol +293 -204
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +307 -231
- package/contracts/authorization/IAccess.sol +13 -5
- package/contracts/authorization/IAccessAdmin.sol +69 -36
- package/contracts/authorization/IAuthorization.sol +21 -1
- package/contracts/distribution/BasicDistribution.sol +13 -11
- package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
- package/contracts/distribution/Distribution.sol +13 -56
- package/contracts/distribution/DistributionService.sol +83 -55
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +0 -9
- package/contracts/distribution/IDistributionService.sol +18 -15
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
- package/contracts/examples/fire/FireProduct.sol +4 -7
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -5
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleProduct.sol +29 -8
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IInstance.sol +51 -16
- package/contracts/instance/IInstanceService.sol +20 -2
- package/contracts/instance/Instance.sol +90 -25
- package/contracts/instance/InstanceAdmin.sol +261 -99
- package/contracts/instance/InstanceAuthorizationV3.sol +49 -36
- package/contracts/instance/InstanceReader.sol +103 -34
- package/contracts/instance/InstanceService.sol +154 -87
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +19 -7
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +4 -0
- package/contracts/oracle/BasicOracle.sol +1 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +1 -3
- package/contracts/oracle/OracleService.sol +16 -15
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +0 -2
- package/contracts/pool/BasicPoolAuthorization.sol +21 -13
- package/contracts/pool/BundleService.sol +28 -58
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +13 -19
- package/contracts/pool/IPoolService.sol +50 -38
- package/contracts/pool/Pool.sol +9 -11
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +294 -154
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +24 -9
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +2 -2
- package/contracts/product/BasicProductAuthorization.sol +23 -8
- package/contracts/product/ClaimService.sol +157 -139
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +3 -0
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +11 -6
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +7 -7
- package/contracts/product/PolicyService.sol +86 -158
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +30 -21
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +55 -15
- package/contracts/product/RiskService.sol +76 -29
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/IRegistry.sol +12 -15
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +7 -2
- package/contracts/registry/RegistryAdmin.sol +143 -342
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +146 -115
- package/contracts/registry/ServiceAuthorizationV3.sol +126 -2
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +17 -26
- package/contracts/shared/ComponentService.sol +141 -129
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/ContractLib.sol +60 -3
- package/contracts/shared/IComponent.sol +0 -4
- package/contracts/shared/IComponentService.sol +9 -13
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +2 -4
- package/contracts/shared/NftOwnable.sol +5 -5
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +42 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +45 -92
- package/contracts/staking/IStaking.sol +12 -10
- package/contracts/staking/IStakingService.sol +16 -1
- package/contracts/staking/Staking.sol +59 -28
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +6 -16
- package/contracts/staking/StakingService.sol +68 -44
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +2 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/ObjectType.sol +47 -39
- package/contracts/type/RiskId.sol +9 -3
- package/contracts/type/RoleId.sol +24 -4
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +27 -10
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +2 -2
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- 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/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
@@ -32,11 +32,11 @@ contract OracleService is
|
|
32
32
|
initializer()
|
33
33
|
{
|
34
34
|
(
|
35
|
-
address
|
36
|
-
address
|
35
|
+
address authority,
|
36
|
+
address registry
|
37
37
|
) = abi.decode(data, (address, address));
|
38
38
|
|
39
|
-
|
39
|
+
__Service_init(authority, registry, owner);
|
40
40
|
_registerInterface(type(IOracleService).interfaceId);
|
41
41
|
}
|
42
42
|
|
@@ -52,11 +52,10 @@ contract OracleService is
|
|
52
52
|
onlyNftOfType(oracleNftId, ORACLE())
|
53
53
|
returns (RequestId requestId)
|
54
54
|
{
|
55
|
-
//
|
56
|
-
|
55
|
+
// checks
|
57
56
|
// get and check active caller
|
58
57
|
(
|
59
|
-
IRegistry.ObjectInfo memory
|
58
|
+
IRegistry.ObjectInfo memory requesterInfo,
|
60
59
|
address instance
|
61
60
|
) = ContractLib.getAndVerifyAnyComponent(
|
62
61
|
getRegistry(), msg.sender, true);
|
@@ -65,8 +64,9 @@ contract OracleService is
|
|
65
64
|
NftId requesterNftId,
|
66
65
|
IOracleComponent oracle
|
67
66
|
) = _checkRequestParams(
|
68
|
-
getRegistry(), oracleNftId,
|
67
|
+
getRegistry(), oracleNftId, requesterInfo, expiryAt, callbackMethodName);
|
69
68
|
|
69
|
+
// effects
|
70
70
|
{
|
71
71
|
// create request info
|
72
72
|
IOracle.RequestInfo memory request = IOracle.RequestInfo({
|
@@ -84,14 +84,15 @@ contract OracleService is
|
|
84
84
|
requestId = IInstance(instance).getInstanceStore().createRequest(request);
|
85
85
|
}
|
86
86
|
|
87
|
+
emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
|
88
|
+
|
89
|
+
// interactions
|
87
90
|
// callback to oracle component
|
88
91
|
oracle.request(
|
89
92
|
requestId,
|
90
93
|
requesterNftId,
|
91
94
|
requestData,
|
92
95
|
expiryAt);
|
93
|
-
|
94
|
-
emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
|
95
96
|
}
|
96
97
|
|
97
98
|
|
@@ -220,7 +221,7 @@ contract OracleService is
|
|
220
221
|
function _checkRequestParams(
|
221
222
|
IRegistry registry,
|
222
223
|
NftId oracleNftId,
|
223
|
-
IRegistry.ObjectInfo memory
|
224
|
+
IRegistry.ObjectInfo memory requesterInfo,
|
224
225
|
Timestamp expiryAt,
|
225
226
|
string memory callbackMethodName
|
226
227
|
)
|
@@ -237,17 +238,17 @@ contract OracleService is
|
|
237
238
|
registry, oracleNftId, true);
|
238
239
|
|
239
240
|
// obtain return values
|
240
|
-
requesterNftId =
|
241
|
+
requesterNftId = requesterInfo.nftId;
|
241
242
|
oracle = IOracleComponent(oracleInfo.objectAddress);
|
242
243
|
|
243
244
|
// check that requester and oracle share same product cluster
|
244
|
-
if (
|
245
|
+
if (requesterInfo.objectType == PRODUCT()) {
|
245
246
|
if (oracleInfo.parentNftId != requesterNftId) {
|
246
|
-
revert ErrorOracleServiceProductMismatch(
|
247
|
+
revert ErrorOracleServiceProductMismatch(requesterInfo.objectType, requesterNftId, oracleInfo.parentNftId);
|
247
248
|
}
|
248
249
|
} else {
|
249
|
-
if (oracleInfo.parentNftId !=
|
250
|
-
revert ErrorOracleServiceProductMismatch(
|
250
|
+
if (oracleInfo.parentNftId != requesterInfo.parentNftId) {
|
251
|
+
revert ErrorOracleServiceProductMismatch(requesterInfo.objectType, requesterInfo.parentNftId, oracleInfo.parentNftId);
|
251
252
|
}
|
252
253
|
}
|
253
254
|
|
@@ -17,7 +17,7 @@ contract OracleServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
OracleService svc = new OracleService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|
@@ -21,7 +21,6 @@ abstract contract BasicPool is
|
|
21
21
|
address registry,
|
22
22
|
NftId productNftId,
|
23
23
|
string memory name,
|
24
|
-
address token,
|
25
24
|
IComponents.PoolInfo memory poolInfo,
|
26
25
|
IAuthorization authorization,
|
27
26
|
address initialOwner
|
@@ -34,7 +33,6 @@ abstract contract BasicPool is
|
|
34
33
|
registry,
|
35
34
|
productNftId,
|
36
35
|
name,
|
37
|
-
token,
|
38
36
|
poolInfo,
|
39
37
|
authorization,
|
40
38
|
initialOwner,
|
@@ -1,14 +1,16 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Authorization} from "../authorization/Authorization.sol";
|
5
|
-
import {BasicPool} from "./BasicPool.sol";
|
6
4
|
import {IAccess} from "../authorization/IAccess.sol";
|
7
5
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
8
6
|
import {IPoolComponent} from "./IPoolComponent.sol";
|
9
|
-
|
7
|
+
|
8
|
+
import {Authorization} from "../authorization/Authorization.sol";
|
9
|
+
import {BasicPool} from "./BasicPool.sol";
|
10
|
+
import {COMPONENT, POOL} from "../type/ObjectType.sol";
|
10
11
|
import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
|
11
12
|
import {RoleId} from "../type/RoleId.sol";
|
13
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
12
14
|
|
13
15
|
|
14
16
|
contract BasicPoolAuthorization
|
@@ -16,23 +18,30 @@ contract BasicPoolAuthorization
|
|
16
18
|
{
|
17
19
|
|
18
20
|
constructor(string memory poolName)
|
19
|
-
Authorization(poolName)
|
21
|
+
Authorization(poolName, POOL(), true, true)
|
20
22
|
{}
|
21
23
|
|
22
24
|
function _setupServiceTargets()
|
23
25
|
internal
|
24
26
|
virtual override
|
25
27
|
{
|
28
|
+
_addServiceTargetWithRole(COMPONENT());
|
26
29
|
_addServiceTargetWithRole(POOL());
|
27
30
|
}
|
28
31
|
|
29
|
-
function
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
function _setupTokenHandlerAuthorizations() internal virtual override {
|
33
|
+
// authorize token handler functions for component service role
|
34
|
+
IAccess.FunctionInfo[] storage functions;
|
35
|
+
functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(COMPONENT()));
|
36
|
+
_authorize(functions, TokenHandler.approve.selector, "approve");
|
37
|
+
_authorize(functions, TokenHandler.setWallet.selector, "setWallet");
|
38
|
+
_authorize(functions, TokenHandler.pushFeeToken.selector, "pushFeeToken");
|
35
39
|
|
40
|
+
// authorize token handler functions for pool service role
|
41
|
+
functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(POOL()));
|
42
|
+
_authorize(functions, TokenHandler.pullToken.selector, "pullToken");
|
43
|
+
_authorize(functions, TokenHandler.pushToken.selector, "pushToken");
|
44
|
+
}
|
36
45
|
|
37
46
|
function _setupTargetAuthorizations()
|
38
47
|
internal
|
@@ -41,7 +50,7 @@ contract BasicPoolAuthorization
|
|
41
50
|
IAccess.FunctionInfo[] storage functions;
|
42
51
|
|
43
52
|
// authorize public role (open access to any account, only allows to lock target)
|
44
|
-
functions = _authorizeForTarget(
|
53
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
45
54
|
_authorize(functions, BasicPool.stake.selector, "stake");
|
46
55
|
_authorize(functions, BasicPool.unstake.selector, "unstake");
|
47
56
|
_authorize(functions, BasicPool.extend.selector, "extend");
|
@@ -57,11 +66,10 @@ contract BasicPoolAuthorization
|
|
57
66
|
_authorize(functions, BasicPool.extend.selector, "extend");
|
58
67
|
|
59
68
|
_authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
|
60
|
-
|
61
69
|
_authorize(functions, BasicPool.withdrawBundleFees.selector, "withdrawBundleFees");
|
62
70
|
|
63
71
|
// authorize pool service
|
64
|
-
functions = _authorizeForTarget(
|
72
|
+
functions = _authorizeForTarget(getMainTargetName(), getServiceRole(POOL()));
|
65
73
|
_authorize(functions, IPoolComponent.verifyApplication.selector, "verifyApplication");
|
66
74
|
}
|
67
75
|
}
|
@@ -45,11 +45,11 @@ contract BundleService is
|
|
45
45
|
initializer()
|
46
46
|
{
|
47
47
|
(
|
48
|
-
address
|
49
|
-
address
|
48
|
+
address authority,
|
49
|
+
address registry
|
50
50
|
) = abi.decode(data, (address, address));
|
51
51
|
|
52
|
-
|
52
|
+
__Service_init(authority, registry, owner);
|
53
53
|
|
54
54
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
55
55
|
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
@@ -144,6 +144,7 @@ contract BundleService is
|
|
144
144
|
virtual
|
145
145
|
restricted()
|
146
146
|
{
|
147
|
+
// checks
|
147
148
|
_checkNftType(policyNftId, POLICY());
|
148
149
|
_checkNftType(bundleNftId, BUNDLE());
|
149
150
|
|
@@ -175,6 +176,7 @@ contract BundleService is
|
|
175
176
|
}
|
176
177
|
}
|
177
178
|
|
179
|
+
// effects
|
178
180
|
// updated locked amount
|
179
181
|
instanceStore.increaseLocked(bundleNftId, collateralAmount);
|
180
182
|
}
|
@@ -185,6 +187,7 @@ contract BundleService is
|
|
185
187
|
virtual
|
186
188
|
restricted()
|
187
189
|
{
|
190
|
+
// checks
|
188
191
|
_checkNftType(bundleNftId, BUNDLE());
|
189
192
|
|
190
193
|
(,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
@@ -192,6 +195,7 @@ contract BundleService is
|
|
192
195
|
// udpate bundle state
|
193
196
|
instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
|
194
197
|
|
198
|
+
// effects
|
195
199
|
// update set of active bundles
|
196
200
|
BundleSet bundleManager = instance.getBundleSet();
|
197
201
|
bundleManager.lock(bundleNftId);
|
@@ -205,10 +209,12 @@ contract BundleService is
|
|
205
209
|
virtual
|
206
210
|
restricted()
|
207
211
|
{
|
212
|
+
// checks
|
208
213
|
_checkNftType(bundleNftId, BUNDLE());
|
209
214
|
|
210
215
|
(,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
211
216
|
|
217
|
+
// effects
|
212
218
|
// udpate bundle state
|
213
219
|
instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
|
214
220
|
|
@@ -229,6 +235,7 @@ contract BundleService is
|
|
229
235
|
restricted()
|
230
236
|
returns (Amount unstakedAmount, Amount feeAmount)
|
231
237
|
{
|
238
|
+
// checks
|
232
239
|
_checkNftType(bundleNftId, BUNDLE());
|
233
240
|
|
234
241
|
InstanceReader instanceReader = instance.getInstanceReader();
|
@@ -240,6 +247,7 @@ contract BundleService is
|
|
240
247
|
revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
|
241
248
|
}
|
242
249
|
|
250
|
+
// effects
|
243
251
|
{
|
244
252
|
// update bundle state
|
245
253
|
InstanceStore instanceStore = instance.getInstanceStore();
|
@@ -256,7 +264,8 @@ contract BundleService is
|
|
256
264
|
|
257
265
|
/// @inheritdoc IBundleService
|
258
266
|
function stake(
|
259
|
-
|
267
|
+
InstanceReader instanceReader,
|
268
|
+
InstanceStore instanceStore,
|
260
269
|
NftId bundleNftId,
|
261
270
|
Amount amount
|
262
271
|
)
|
@@ -264,10 +273,11 @@ contract BundleService is
|
|
264
273
|
virtual
|
265
274
|
restricted()
|
266
275
|
{
|
276
|
+
// checks
|
267
277
|
_checkNftType(bundleNftId, BUNDLE());
|
268
278
|
|
269
|
-
IBundle.BundleInfo memory bundleInfo =
|
270
|
-
StateId bundleState =
|
279
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
280
|
+
StateId bundleState = instanceReader.getBundleState(bundleNftId);
|
271
281
|
|
272
282
|
if( (bundleState != ACTIVE() && bundleState != PAUSED()) // locked bundles can be staked
|
273
283
|
|| bundleInfo.expiredAt < TimestampLib.blockTimestamp()
|
@@ -275,8 +285,9 @@ contract BundleService is
|
|
275
285
|
revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
|
276
286
|
}
|
277
287
|
|
288
|
+
// effects
|
278
289
|
_accountingService.increaseBundleBalance(
|
279
|
-
|
290
|
+
instanceStore,
|
280
291
|
bundleNftId,
|
281
292
|
amount,
|
282
293
|
AmountLib.zero());
|
@@ -284,7 +295,7 @@ contract BundleService is
|
|
284
295
|
|
285
296
|
/// @inheritdoc IBundleService
|
286
297
|
function unstake(
|
287
|
-
|
298
|
+
InstanceStore instanceStore,
|
288
299
|
NftId bundleNftId,
|
289
300
|
Amount amount
|
290
301
|
)
|
@@ -293,9 +304,9 @@ contract BundleService is
|
|
293
304
|
restricted()
|
294
305
|
returns (Amount unstakedAmount)
|
295
306
|
{
|
307
|
+
// checks
|
296
308
|
_checkNftType(bundleNftId, BUNDLE());
|
297
309
|
|
298
|
-
InstanceStore instanceStore = instance.getInstanceStore();
|
299
310
|
(
|
300
311
|
Amount balanceAmount,
|
301
312
|
Amount lockedAmount,
|
@@ -315,6 +326,7 @@ contract BundleService is
|
|
315
326
|
revert ErrorBundleServiceUnstakeAmountExceedsLimit(amount, availableAmount);
|
316
327
|
}
|
317
328
|
|
329
|
+
// effects
|
318
330
|
_accountingService.decreaseBundleBalance(
|
319
331
|
instanceStore,
|
320
332
|
bundleNftId,
|
@@ -329,6 +341,7 @@ contract BundleService is
|
|
329
341
|
restricted()
|
330
342
|
returns (Timestamp extendedExpiredAt)
|
331
343
|
{
|
344
|
+
// checks
|
332
345
|
_checkNftType(bundleNftId, BUNDLE());
|
333
346
|
|
334
347
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
@@ -349,17 +362,18 @@ contract BundleService is
|
|
349
362
|
revert ErrorBundleServiceExtensionLifetimeIsZero();
|
350
363
|
}
|
351
364
|
|
365
|
+
// effects
|
352
366
|
bundleInfo.expiredAt = bundleInfo.expiredAt.addSeconds(lifetimeExtension);
|
353
|
-
|
367
|
+
extendedExpiredAt = bundleInfo.expiredAt;
|
354
368
|
|
355
|
-
|
369
|
+
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
356
370
|
|
357
|
-
|
371
|
+
emit LogBundleServiceBundleExtended(bundleNftId, lifetimeExtension, extendedExpiredAt);
|
358
372
|
}
|
359
373
|
|
360
374
|
|
361
375
|
function releaseCollateral(
|
362
|
-
|
376
|
+
InstanceStore instanceStore,
|
363
377
|
NftId policyNftId,
|
364
378
|
NftId bundleNftId,
|
365
379
|
Amount collateralAmount
|
@@ -371,54 +385,10 @@ contract BundleService is
|
|
371
385
|
_checkNftType(policyNftId, POLICY());
|
372
386
|
_checkNftType(bundleNftId, BUNDLE());
|
373
387
|
|
374
|
-
|
388
|
+
instanceStore.decreaseLocked(bundleNftId, collateralAmount);
|
375
389
|
}
|
376
390
|
|
377
391
|
|
378
|
-
/// @inheritdoc IBundleService
|
379
|
-
function withdrawBundleFees(NftId bundleNftId, Amount amount)
|
380
|
-
public
|
381
|
-
virtual
|
382
|
-
restricted()
|
383
|
-
returns (Amount withdrawnAmount)
|
384
|
-
{
|
385
|
-
_checkNftType(bundleNftId, BUNDLE());
|
386
|
-
|
387
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
388
|
-
InstanceReader reader = instance.getInstanceReader();
|
389
|
-
|
390
|
-
IComponents.ComponentInfo memory poolInfo = reader.getComponentInfo(poolNftId);
|
391
|
-
address poolWallet = poolInfo.tokenHandler.getWallet();
|
392
|
-
|
393
|
-
// IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
394
|
-
|
395
|
-
// determine withdrawn amount
|
396
|
-
withdrawnAmount = amount;
|
397
|
-
if (withdrawnAmount.gte(AmountLib.max())) {
|
398
|
-
withdrawnAmount = reader.getFeeAmount(bundleNftId);
|
399
|
-
} else {
|
400
|
-
if (withdrawnAmount.gt(reader.getFeeAmount(bundleNftId))) {
|
401
|
-
revert ErrorBundleServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
|
402
|
-
}
|
403
|
-
}
|
404
|
-
|
405
|
-
// decrease fee counters by withdrawnAmount
|
406
|
-
{
|
407
|
-
InstanceStore store = instance.getInstanceStore();
|
408
|
-
// decrease fee amount of the bundle
|
409
|
-
_accountingService.decreaseBundleBalance(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
|
410
|
-
// decrease pool balance
|
411
|
-
_accountingService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
|
412
|
-
}
|
413
|
-
|
414
|
-
// transfer amount to bundle owner
|
415
|
-
{
|
416
|
-
address owner = getRegistry().ownerOf(bundleNftId);
|
417
|
-
emit LogBundleServiceFeesWithdrawn(bundleNftId, owner, address(poolInfo.token), withdrawnAmount);
|
418
|
-
poolInfo.tokenHandler.distributeTokens(poolWallet, owner, withdrawnAmount);
|
419
|
-
}
|
420
|
-
}
|
421
|
-
|
422
392
|
function _getDomain() internal pure override returns(ObjectType) {
|
423
393
|
return BUNDLE();
|
424
394
|
}
|
@@ -17,7 +17,7 @@ contract BundleServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
BundleService svc = new BundleService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|
@@ -1,11 +1,14 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IService} from "../shared/IService.sol";
|
5
|
+
import {IInstance} from "../instance/IInstance.sol";
|
6
|
+
|
4
7
|
import {Amount} from "../type/Amount.sol";
|
5
8
|
import {NftId} from "../type/NftId.sol";
|
6
9
|
import {Fee} from "../type/Fee.sol";
|
7
|
-
import {
|
8
|
-
import {
|
10
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
11
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
9
12
|
import {Seconds} from "../type/Seconds.sol";
|
10
13
|
import {StateId} from "../type/StateId.sol";
|
11
14
|
import {Timestamp} from "../type/Timestamp.sol";
|
@@ -25,14 +28,11 @@ interface IBundleService is IService {
|
|
25
28
|
error ErrorBundleServiceBundlePoolMismatch(NftId bundleNftId, NftId expectedPool, NftId actualPool);
|
26
29
|
|
27
30
|
error ErrorBundleServicePolicyNotCloseable(NftId policyNftId);
|
28
|
-
|
29
|
-
error ErrorBundleServiceFeesWithdrawAmountExceedsLimit(Amount amount, Amount limit);
|
30
31
|
|
31
32
|
error ErrorBundleServiceUnstakeAmountExceedsLimit(Amount amount, Amount limit);
|
32
33
|
|
33
34
|
error ErrorBundleServiceExtensionLifetimeIsZero();
|
34
35
|
|
35
|
-
event LogBundleServiceFeesWithdrawn(NftId bundleNftId, address recipient, address tokenAddress, Amount amount);
|
36
36
|
event LogBundleServiceBundleExtended(NftId bundleNftId, Seconds lifetimeExtension, Timestamp extendedExpiredAt);
|
37
37
|
|
38
38
|
/// @dev Create a new bundle for the specified attributes.
|
@@ -48,15 +48,16 @@ interface IBundleService is IService {
|
|
48
48
|
|
49
49
|
/// @dev increase bundle stakes by the specified amount. bundle must not be expired or closed
|
50
50
|
/// may only be called by the pool service
|
51
|
-
function stake(
|
51
|
+
function stake(
|
52
|
+
InstanceReader instanceReader,
|
53
|
+
InstanceStore instanceStore,
|
54
|
+
NftId bundleNftId,
|
55
|
+
Amount amount
|
56
|
+
) external;
|
52
57
|
|
53
58
|
/// @dev decrease bundle stakes by the specified amount
|
54
59
|
/// may only be called by the pool service
|
55
|
-
|
56
|
-
/// @param bundleNftId the bundle nft id
|
57
|
-
/// @param amount the amount to unstake (set to AmountLib.max() to unstake all available stakes)
|
58
|
-
/// @return unstakedAmount the effective unstaked amount
|
59
|
-
function unstake(IInstance instance, NftId bundleNftId, Amount amount) external returns (Amount unstakedAmount);
|
60
|
+
function unstake(InstanceStore instanceStore, NftId bundleNftId, Amount amount) external returns (Amount unstakedAmount);
|
60
61
|
|
61
62
|
/// @dev extend the lifetime of the bundle by the specified time in seconds
|
62
63
|
function extend(NftId bundleNftId, Seconds lifetimeExtension) external returns (Timestamp extendedExpiredAt);
|
@@ -106,16 +107,9 @@ interface IBundleService is IService {
|
|
106
107
|
/// @dev releases the specified collateral in the bundle
|
107
108
|
/// may only be called by pool service
|
108
109
|
function releaseCollateral(
|
109
|
-
|
110
|
+
InstanceStore instanceStore,
|
110
111
|
NftId policyNftId,
|
111
112
|
NftId bundleNftId,
|
112
113
|
Amount collateralAmount
|
113
114
|
) external;
|
114
|
-
|
115
|
-
// FIXME: move to pool service
|
116
|
-
/// @dev Withdraw bundle feeds for the given bundle
|
117
|
-
/// @param bundleNftId the bundle Nft Id
|
118
|
-
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
119
|
-
/// @return withdrawnAmount the effective withdrawn amount
|
120
|
-
function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
|
121
115
|
}
|
@@ -1,13 +1,16 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {ClaimId} from "../type/ClaimId.sol";
|
6
4
|
import {IInstance} from "../instance/IInstance.sol";
|
7
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
8
5
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
9
6
|
import {IService} from "../shared/IService.sol";
|
7
|
+
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
9
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
10
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
11
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
10
12
|
import {NftId} from "../type/NftId.sol";
|
13
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
11
14
|
import {UFixed} from "../type/UFixed.sol";
|
12
15
|
|
13
16
|
interface IPoolService is IService {
|
@@ -22,6 +25,8 @@ interface IPoolService is IService {
|
|
22
25
|
event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
23
26
|
event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
24
27
|
|
28
|
+
event LogPoolServiceFeesWithdrawn(NftId bundleNftId, address recipient, address tokenAddress, Amount amount);
|
29
|
+
|
25
30
|
event LogPoolServiceProcessFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount);
|
26
31
|
|
27
32
|
error ErrorPoolServicePoolNotExternallyManaged(NftId poolNftId);
|
@@ -30,6 +35,7 @@ interface IPoolService is IService {
|
|
30
35
|
error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
|
31
36
|
error ErrorPoolServiceBundlePoolMismatch(NftId bundleNftId, NftId poolNftId);
|
32
37
|
error ErrorPoolServiceMaxBalanceAmountExceeded(NftId poolNftId, Amount maxBalanceAmount, Amount currentBalanceAmount, Amount transferAmount);
|
38
|
+
error ErrorPoolServiceFeesWithdrawAmountExceedsLimit(Amount amount, Amount limit);
|
33
39
|
|
34
40
|
/// @dev sets the max balance amount for the calling pool
|
35
41
|
function setMaxBalanceAmount(Amount maxBalanceAmount) external;
|
@@ -58,7 +64,6 @@ interface IPoolService is IService {
|
|
58
64
|
/// may only be called by the policy service for unlocked pool components
|
59
65
|
function releaseCollateral(
|
60
66
|
IInstance instance,
|
61
|
-
address token,
|
62
67
|
NftId policyNftId,
|
63
68
|
IPolicy.PolicyInfo memory policyInfo
|
64
69
|
) external;
|
@@ -68,11 +73,14 @@ interface IPoolService is IService {
|
|
68
73
|
/// every payout of a policy reduces the collateral by the payout amount
|
69
74
|
/// may only be called by the claim service for unlocked pool components
|
70
75
|
function processPayout(
|
71
|
-
|
72
|
-
|
76
|
+
InstanceReader instanceReader,
|
77
|
+
InstanceStore instanceStore,
|
78
|
+
NftId productNftId,
|
73
79
|
NftId policyNftId,
|
74
|
-
|
75
|
-
|
80
|
+
NftId bundleNftId,
|
81
|
+
PayoutId payoutId,
|
82
|
+
Amount payoutAmount,
|
83
|
+
address payoutBeneficiary
|
76
84
|
) external;
|
77
85
|
|
78
86
|
|
@@ -96,6 +104,10 @@ interface IPoolService is IService {
|
|
96
104
|
function closeBundle(NftId bundleNftId) external;
|
97
105
|
|
98
106
|
|
107
|
+
/// @dev Withdraw bundle feeds for the specified bundle.
|
108
|
+
function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
|
109
|
+
|
110
|
+
|
99
111
|
/// @dev Informs product about available funds to process a confirmed claim.
|
100
112
|
/// The function triggers a callback to the product component when the product's property isProcessingFundedClaims is set.
|
101
113
|
function processFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount) external;
|
@@ -119,35 +131,35 @@ interface IPoolService is IService {
|
|
119
131
|
function processSale(NftId bundleNftId, IPolicy.PremiumInfo memory premium) external;
|
120
132
|
|
121
133
|
|
122
|
-
/// @dev Calulate required collateral for the provided parameters.
|
123
|
-
function calculateRequiredCollateral(
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
)
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
/// @dev calulate required collateral for the provided parameters.
|
139
|
-
/// Collateralization is applied to sum insured.
|
140
|
-
/// Retention level defines the fraction of the collateral that is required locally.
|
141
|
-
function calculateRequiredCollateral(
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
)
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
134
|
+
// /// @dev Calulate required collateral for the provided parameters.
|
135
|
+
// function calculateRequiredCollateral(
|
136
|
+
// InstanceReader instanceReader,
|
137
|
+
// NftId productNftId,
|
138
|
+
// Amount sumInsuredAmount
|
139
|
+
// )
|
140
|
+
// external
|
141
|
+
// view
|
142
|
+
// returns(
|
143
|
+
// NftId poolNftId,
|
144
|
+
// Amount totalCollateralAmount,
|
145
|
+
// Amount localCollateralAmount,
|
146
|
+
// bool poolIsVerifyingApplications
|
147
|
+
// );
|
148
|
+
|
149
|
+
|
150
|
+
// /// @dev calulate required collateral for the provided parameters.
|
151
|
+
// /// Collateralization is applied to sum insured.
|
152
|
+
// /// Retention level defines the fraction of the collateral that is required locally.
|
153
|
+
// function calculateRequiredCollateral(
|
154
|
+
// UFixed collateralizationLevel,
|
155
|
+
// UFixed retentionLevel,
|
156
|
+
// Amount sumInsuredAmount
|
157
|
+
// )
|
158
|
+
// external
|
159
|
+
// pure
|
160
|
+
// returns(
|
161
|
+
// Amount totalCollateralAmount,
|
162
|
+
// Amount localCollateralAmount
|
163
|
+
// );
|
152
164
|
|
153
165
|
}
|