@etherisc/gif-next 0.0.2-fd4ee14-428 → 0.0.2-fd5f17a-625
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 +49 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +29 -10
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1342 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -450
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +255 -233
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +67 -106
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +91 -160
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +152 -47
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -19
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +28 -178
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +290 -141
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +52 -224
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -110
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +227 -238
- 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 +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +43 -37
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +40 -315
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -144
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -85
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1248 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +402 -174
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -94
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +45 -290
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -100
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +45 -576
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +264 -248
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +40 -87
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +31 -162
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +31 -94
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1096 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +185 -175
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +58 -105
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +114 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +184 -119
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +32 -79
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +242 -321
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +55 -106
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +113 -265
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +55 -126
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +35 -378
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +583 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +651 -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 +246 -42
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- 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 +464 -99
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +336 -376
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -130
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -78
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +43 -16
- 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 +0 -211
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +242 -185
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +69 -112
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -112
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -37
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- 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/IPolicyHolder.sol/IPolicyHolder.json +0 -42
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- 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 +32 -275
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +4 -136
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -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 +0 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +27 -27
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +85 -262
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +47 -94
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -138
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -82
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +58 -22
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -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 +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -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 +55 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
- 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 +2 -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 +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
- 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/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -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 +566 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/{shared → authorization}/AccessAdmin.sol +135 -305
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +217 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +8 -5
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +21 -17
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +145 -111
- package/contracts/distribution/DistributionService.sol +80 -41
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +23 -3
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +14 -38
- package/contracts/instance/IInstanceService.sol +13 -18
- package/contracts/instance/Instance.sol +68 -102
- package/contracts/instance/InstanceAdmin.sol +221 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +54 -16
- package/contracts/instance/InstanceService.sol +112 -84
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +23 -5
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +1 -7
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +22 -22
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +73 -51
- package/contracts/oracle/OracleService.sol +4 -3
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +192 -50
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +33 -5
- package/contracts/pool/IPoolComponent.sol +6 -60
- package/contracts/pool/IPoolService.sol +36 -26
- package/contracts/pool/Pool.sol +165 -138
- package/contracts/pool/PoolService.sol +165 -108
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +53 -59
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +120 -75
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +28 -5
- package/contracts/product/IPolicyService.sol +27 -32
- package/contracts/product/IPricingService.sol +7 -7
- package/contracts/product/IProductComponent.sol +7 -10
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +280 -182
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +44 -43
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +162 -114
- package/contracts/product/{ProductService.sol → RiskService.sol} +11 -38
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +65 -32
- package/contracts/registry/IRegistry.sol +63 -19
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +333 -213
- package/contracts/registry/RegistryAdmin.sol +260 -129
- package/contracts/registry/RegistryService.sol +6 -20
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +491 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +16 -17
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +30 -43
- package/contracts/shared/ComponentService.sol +99 -75
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +2 -2
- package/contracts/shared/IComponent.sol +4 -4
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -7
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IPolicyHolder.sol +0 -9
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +51 -23
- package/contracts/shared/KeyValueStore.sol +6 -2
- package/contracts/shared/Lifecycle.sol +16 -69
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +7 -7
- package/contracts/shared/PolicyHolder.sol +7 -53
- package/contracts/shared/Registerable.sol +4 -4
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +8 -9
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +3 -3
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +26 -41
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingService.sol +10 -14
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +15 -23
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +12 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ObjectType.sol +52 -18
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/StateId.sol +1 -0
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +34 -9
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +4 -5
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +6 -3
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
- 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/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- 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/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- 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/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -527
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,46 +1,30 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Pool} from "./Pool.sol";
|
5
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
6
|
-
import {IInstance} from "../instance/IInstance.sol";
|
7
4
|
import {IBundle} from "../instance/module/IBundle.sol";
|
5
|
+
import {IBundleService} from "./IBundleService.sol";
|
8
6
|
import {IComponents} from "../instance/module/IComponents.sol";
|
7
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
8
|
+
import {IInstance} from "../instance/IInstance.sol";
|
9
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
9
10
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
10
|
-
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {
|
11
|
+
import {IPoolService} from "./IPoolService.sol";
|
12
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
13
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
14
|
+
import {IStaking} from "../staking/IStaking.sol";
|
14
15
|
|
15
16
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
16
17
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
17
|
-
import {NftId
|
18
|
-
import {ObjectType, POOL, BUNDLE, COMPONENT, INSTANCE, REGISTRY
|
19
|
-
import {
|
18
|
+
import {NftId} from "../type/NftId.sol";
|
19
|
+
import {ObjectType, POOL, BUNDLE, COMPONENT, INSTANCE, REGISTRY} from "../type/ObjectType.sol";
|
20
|
+
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
20
21
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
21
|
-
import {
|
22
|
-
import {KEEP_STATE, StateId} from "../type/StateId.sol";
|
22
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
23
23
|
import {Seconds} from "../type/Seconds.sol";
|
24
|
-
import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
25
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
26
24
|
import {UFixed} from "../type/UFixed.sol";
|
27
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
28
|
-
|
29
|
-
import {IService} from "../shared/IService.sol";
|
30
|
-
import {Service} from "../shared/Service.sol";
|
31
|
-
import {BundleManager} from "../instance/BundleManager.sol";
|
32
25
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
33
|
-
import {IBundleService} from "./IBundleService.sol";
|
34
|
-
import {IComponentService} from "../shared/IComponentService.sol";
|
35
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
36
|
-
import {IPoolService} from "./IPoolService.sol";
|
37
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
38
|
-
import {IStaking} from "../staking/IStaking.sol";
|
39
|
-
import {InstanceService} from "../instance/InstanceService.sol";
|
40
26
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
41
27
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
42
|
-
import {IComponent} from "../shared/IComponent.sol";
|
43
|
-
import {IPoolComponent} from "./IPoolComponent.sol";
|
44
28
|
|
45
29
|
string constant POOL_SERVICE_NAME = "PoolService";
|
46
30
|
|
@@ -48,9 +32,6 @@ contract PoolService is
|
|
48
32
|
ComponentVerifyingService,
|
49
33
|
IPoolService
|
50
34
|
{
|
51
|
-
using NftIdLib for NftId;
|
52
|
-
using AmountLib for Amount;
|
53
|
-
|
54
35
|
IBundleService internal _bundleService;
|
55
36
|
IComponentService internal _componentService;
|
56
37
|
IInstanceService private _instanceService;
|
@@ -63,8 +44,8 @@ contract PoolService is
|
|
63
44
|
bytes memory data
|
64
45
|
)
|
65
46
|
internal
|
66
|
-
initializer
|
67
47
|
virtual override
|
48
|
+
initializer()
|
68
49
|
{
|
69
50
|
(
|
70
51
|
address registryAddress,,
|
@@ -72,7 +53,7 @@ contract PoolService is
|
|
72
53
|
address authority
|
73
54
|
) = abi.decode(data, (address, address, address));
|
74
55
|
|
75
|
-
|
56
|
+
_initializeService(registryAddress, authority, owner);
|
76
57
|
|
77
58
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
78
59
|
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
@@ -81,27 +62,23 @@ contract PoolService is
|
|
81
62
|
|
82
63
|
_staking = IStaking(getRegistry().getStakingAddress());
|
83
64
|
|
84
|
-
|
65
|
+
_registerInterface(type(IPoolService).interfaceId);
|
85
66
|
}
|
86
67
|
|
87
|
-
|
88
|
-
function
|
68
|
+
/// @inheritdoc IPoolService
|
69
|
+
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
89
70
|
external
|
90
71
|
virtual
|
91
72
|
{
|
92
|
-
/*
|
93
73
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
94
74
|
InstanceReader instanceReader = instance.getInstanceReader();
|
75
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
95
76
|
|
96
|
-
|
97
|
-
|
98
|
-
Amount previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
|
99
|
-
|
100
|
-
poolInfo.maxCapitalAmount = maxCapitalAmount;
|
77
|
+
Amount previousMaxBalanceAmount = poolInfo.maxBalanceAmount;
|
78
|
+
poolInfo.maxBalanceAmount = maxBalanceAmount;
|
101
79
|
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
102
80
|
|
103
|
-
emit
|
104
|
-
*/
|
81
|
+
emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
|
105
82
|
}
|
106
83
|
|
107
84
|
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
@@ -125,31 +102,10 @@ contract PoolService is
|
|
125
102
|
emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
|
126
103
|
}
|
127
104
|
|
128
|
-
|
129
|
-
function setFees(
|
130
|
-
Fee memory poolFee,
|
131
|
-
Fee memory stakingFee,
|
132
|
-
Fee memory performanceFee
|
133
|
-
)
|
134
|
-
external
|
135
|
-
virtual
|
136
|
-
{
|
137
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
138
|
-
|
139
|
-
IComponents.PoolInfo memory poolInfo = instance.getInstanceReader().getPoolInfo(poolNftId);
|
140
|
-
poolInfo.poolFee = poolFee;
|
141
|
-
poolInfo.stakingFee = stakingFee;
|
142
|
-
poolInfo.performanceFee = performanceFee;
|
143
|
-
|
144
|
-
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
145
|
-
|
146
|
-
// TODO add logging
|
147
|
-
}
|
148
|
-
|
105
|
+
/// @inheritdoc IPoolService
|
149
106
|
function createBundle(
|
150
107
|
address bundleOwner, // initial bundle owner
|
151
108
|
Fee memory fee, // fees deducted from premium that go to bundle owner
|
152
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
153
109
|
Seconds lifetime, // initial duration for which new policies are covered
|
154
110
|
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
155
111
|
)
|
@@ -158,38 +114,17 @@ contract PoolService is
|
|
158
114
|
returns(NftId bundleNftId)
|
159
115
|
{
|
160
116
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
161
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
162
|
-
|
163
|
-
(
|
164
|
-
Amount stakingFeeAmount,
|
165
|
-
Amount stakingNetAmount
|
166
|
-
) = FeeLib.calculateFee(
|
167
|
-
_getStakingFee(instanceReader, poolNftId),
|
168
|
-
stakingAmount);
|
169
117
|
|
118
|
+
// create the empty bundle
|
170
119
|
bundleNftId = _bundleService.create(
|
171
120
|
instance,
|
172
121
|
poolNftId,
|
173
122
|
bundleOwner,
|
174
123
|
fee,
|
175
|
-
|
124
|
+
AmountLib.zero(),
|
176
125
|
lifetime,
|
177
126
|
filter);
|
178
127
|
|
179
|
-
// pool book keeping
|
180
|
-
_componentService.increasePoolBalance(
|
181
|
-
instance.getInstanceStore(),
|
182
|
-
poolNftId,
|
183
|
-
stakingAmount,
|
184
|
-
stakingFeeAmount);
|
185
|
-
|
186
|
-
// pool bookkeeping and collect tokens from bundle owner
|
187
|
-
_collectStakingAmount(
|
188
|
-
instanceReader,
|
189
|
-
poolNftId,
|
190
|
-
bundleOwner,
|
191
|
-
stakingAmount);
|
192
|
-
|
193
128
|
emit LogPoolServiceBundleCreated(instance.getNftId(), poolNftId, bundleNftId);
|
194
129
|
}
|
195
130
|
|
@@ -199,8 +134,8 @@ contract PoolService is
|
|
199
134
|
view
|
200
135
|
returns (Fee memory stakingFee)
|
201
136
|
{
|
202
|
-
NftId productNftId = instanceReader.
|
203
|
-
return instanceReader.
|
137
|
+
NftId productNftId = instanceReader.getComponentInfo(poolNftId).productNftId;
|
138
|
+
return instanceReader.getProductInfo(productNftId).stakingFee;
|
204
139
|
}
|
205
140
|
|
206
141
|
function closeBundle(NftId bundleNftId)
|
@@ -209,20 +144,147 @@ contract PoolService is
|
|
209
144
|
{
|
210
145
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
211
146
|
|
212
|
-
// TODO
|
147
|
+
// TODO get performance fee for pool (#477)
|
213
148
|
|
214
149
|
// releasing collateral in bundle
|
215
|
-
_bundleService.close(instance, bundleNftId);
|
216
|
-
|
217
|
-
// TODO get performance fee for pool, transfer of remaining funds + bundle fees to bundle owner
|
150
|
+
(Amount unstakedAmount, Amount feeAmount) = _bundleService.close(instance, bundleNftId);
|
218
151
|
|
152
|
+
_componentService.decreasePoolBalance(
|
153
|
+
instance.getInstanceStore(),
|
154
|
+
poolNftId,
|
155
|
+
unstakedAmount + feeAmount,
|
156
|
+
AmountLib.zero());
|
157
|
+
|
219
158
|
emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
|
159
|
+
|
160
|
+
if ((unstakedAmount + feeAmount).gtz()){
|
161
|
+
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
|
162
|
+
poolComponentInfo.tokenHandler.distributeTokens(
|
163
|
+
poolComponentInfo.wallet,
|
164
|
+
getRegistry().ownerOf(bundleNftId),
|
165
|
+
unstakedAmount + feeAmount);
|
166
|
+
}
|
167
|
+
}
|
168
|
+
|
169
|
+
/// @inheritdoc IPoolService
|
170
|
+
function stake(NftId bundleNftId, Amount amount)
|
171
|
+
external
|
172
|
+
virtual
|
173
|
+
// TODO: restricted() (once #462 is done)
|
174
|
+
returns(Amount netAmount)
|
175
|
+
{
|
176
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
177
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
178
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
179
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
180
|
+
|
181
|
+
if (bundleInfo.poolNftId != poolNftId) {
|
182
|
+
revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
183
|
+
}
|
184
|
+
|
185
|
+
{
|
186
|
+
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
187
|
+
if (currentPoolBalance + amount > poolInfo.maxBalanceAmount) {
|
188
|
+
revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, amount);
|
189
|
+
}
|
190
|
+
}
|
191
|
+
|
192
|
+
// calculate fees
|
193
|
+
Amount feeAmount;
|
194
|
+
(
|
195
|
+
feeAmount,
|
196
|
+
netAmount
|
197
|
+
) = FeeLib.calculateFee(
|
198
|
+
_getStakingFee(instanceReader, poolNftId),
|
199
|
+
amount);
|
200
|
+
|
201
|
+
// do all the bookkeeping
|
202
|
+
_componentService.increasePoolBalance(
|
203
|
+
instance.getInstanceStore(),
|
204
|
+
poolNftId,
|
205
|
+
netAmount,
|
206
|
+
feeAmount);
|
207
|
+
|
208
|
+
_bundleService.stake(instance, bundleNftId, netAmount);
|
209
|
+
|
210
|
+
// collect tokens from bundle owner
|
211
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
212
|
+
emit LogPoolServiceBundleStaked(instance.getNftId(), poolNftId, bundleNftId, amount, netAmount);
|
213
|
+
|
214
|
+
// TODO only collect staking token when pool is not externally managed
|
215
|
+
_collectStakingAmount(
|
216
|
+
instanceReader,
|
217
|
+
poolNftId,
|
218
|
+
bundleOwner,
|
219
|
+
amount);
|
220
|
+
}
|
221
|
+
|
222
|
+
/// @inheritdoc IPoolService
|
223
|
+
function unstake(NftId bundleNftId, Amount amount)
|
224
|
+
external
|
225
|
+
virtual
|
226
|
+
// TODO: restricted() (once #462 is done)
|
227
|
+
returns(Amount netAmount)
|
228
|
+
{
|
229
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
230
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
231
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
232
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
233
|
+
|
234
|
+
if (bundleInfo.poolNftId != poolNftId) {
|
235
|
+
revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
236
|
+
}
|
237
|
+
|
238
|
+
// call bundle service for bookkeeping and additional checks
|
239
|
+
Amount unstakedAmount = _bundleService.unstake(instance, bundleNftId, amount);
|
240
|
+
|
241
|
+
// Important: from now on work only with unstakedAmount as it is the only reliable amount.
|
242
|
+
// if amount was max, this was set to the available amount
|
243
|
+
|
244
|
+
// TODO: handle performance fees (issue #477)
|
245
|
+
|
246
|
+
// update pool bookkeeping - performance fees stay in the pool, but as fees
|
247
|
+
_componentService.decreasePoolBalance(
|
248
|
+
instanceStore,
|
249
|
+
poolNftId,
|
250
|
+
unstakedAmount,
|
251
|
+
AmountLib.zero());
|
252
|
+
|
253
|
+
IComponents.ComponentInfo memory poolComponentInfo = instanceReader.getComponentInfo(poolNftId);
|
254
|
+
address poolWallet = poolComponentInfo.wallet;
|
255
|
+
// transfer amount to bundle owner
|
256
|
+
address owner = getRegistry().ownerOf(bundleNftId);
|
257
|
+
emit LogPoolServiceBundleUnstaked(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount);
|
258
|
+
poolComponentInfo.tokenHandler.distributeTokens(
|
259
|
+
poolWallet,
|
260
|
+
owner,
|
261
|
+
unstakedAmount);
|
262
|
+
return unstakedAmount;
|
263
|
+
}
|
264
|
+
|
265
|
+
|
266
|
+
function fundPoolWallet(NftId poolNftId, Amount amount)
|
267
|
+
external
|
268
|
+
virtual
|
269
|
+
restricted()
|
270
|
+
{
|
271
|
+
// TODO check that poolNftId is externally managed
|
272
|
+
// TODO implement
|
220
273
|
}
|
221
274
|
|
222
275
|
|
276
|
+
function defundPoolWallet(NftId poolNftId, Amount amount)
|
277
|
+
external
|
278
|
+
virtual
|
279
|
+
restricted()
|
280
|
+
{
|
281
|
+
// TODO check that poolNftId is externally managed
|
282
|
+
// TODO implement
|
283
|
+
}
|
284
|
+
|
223
285
|
function processSale(
|
224
286
|
NftId bundleNftId,
|
225
|
-
IPolicy.
|
287
|
+
IPolicy.PremiumInfo memory premium
|
226
288
|
)
|
227
289
|
external
|
228
290
|
virtual
|
@@ -234,9 +296,9 @@ contract PoolService is
|
|
234
296
|
IRegistry.ObjectInfo memory instanceObjectInfo = registry.getObjectInfo(poolObjectInfo.parentNftId);
|
235
297
|
IInstance instance = IInstance(instanceObjectInfo.objectAddress);
|
236
298
|
|
237
|
-
Amount poolFeeAmount =
|
238
|
-
Amount bundleFeeAmount =
|
239
|
-
Amount bundleNetAmount =
|
299
|
+
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
300
|
+
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
301
|
+
Amount bundleNetAmount = premium.netPremiumAmount;
|
240
302
|
|
241
303
|
InstanceStore instanceStore = instance.getInstanceStore();
|
242
304
|
_componentService.increasePoolBalance(
|
@@ -422,7 +484,6 @@ contract PoolService is
|
|
422
484
|
}
|
423
485
|
|
424
486
|
|
425
|
-
// TODO create (I)TreasuryService that deals with all gif related token transfers
|
426
487
|
/// @dev transfers the specified amount from the bundle owner to the pool's wallet
|
427
488
|
function _collectStakingAmount(
|
428
489
|
InstanceReader instanceReader,
|
@@ -435,15 +496,11 @@ contract PoolService is
|
|
435
496
|
|
436
497
|
// collecting investor token
|
437
498
|
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
438
|
-
TokenHandler tokenHandler = componentInfo.tokenHandler;
|
439
499
|
address poolWallet = componentInfo.wallet;
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
poolWallet,
|
445
|
-
amount);
|
446
|
-
}
|
500
|
+
componentInfo.tokenHandler.collectTokens(
|
501
|
+
bundleOwner,
|
502
|
+
poolWallet,
|
503
|
+
amount);
|
447
504
|
}
|
448
505
|
|
449
506
|
function _getDomain() internal pure override returns(ObjectType) {
|
@@ -1,12 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IVersionable} from "../
|
5
|
-
import {ProxyManager} from "../
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {PoolService} from "./PoolService.sol";
|
7
|
-
import {Registry} from "../registry/Registry.sol";
|
8
|
-
import {RegistryService} from "../registry/RegistryService.sol";
|
9
|
-
import {REGISTRY} from "../type/ObjectType.sol";
|
10
7
|
|
11
8
|
contract PoolServiceManager is ProxyManager {
|
12
9
|
|
@@ -1,51 +1,27 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IApplicationService} from "./IApplicationService.sol";
|
5
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
6
|
+
import {IInstance} from "../instance/IInstance.sol";
|
7
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
8
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
9
|
+
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
10
|
+
import {IPricingService} from "./IPricingService.sol";
|
11
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
12
|
+
|
4
13
|
import {AmountLib} from "../type/Amount.sol";
|
5
14
|
import {Seconds} from "../type/Seconds.sol";
|
6
|
-
import {
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import {ObjectType, DISTRIBUTION, INSTANCE, PRODUCT, POOL, REGISTRY, APPLICATION, POLICY, BUNDLE, PRICE} from "../type/ObjectType.sol";
|
10
|
-
import {APPLIED, REVOKED, ACTIVE, KEEP_STATE} from "../type/StateId.sol";
|
15
|
+
import {zeroTimestamp} from "../type/Timestamp.sol";
|
16
|
+
import {ObjectType, DISTRIBUTION, PRODUCT, REGISTRY, APPLICATION, POLICY, PRICE} from "../type/ObjectType.sol";
|
17
|
+
import {REVOKED} from "../type/StateId.sol";
|
11
18
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
12
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
13
19
|
import {ReferralId} from "../type/Referral.sol";
|
14
20
|
import {RiskId} from "../type/RiskId.sol";
|
15
|
-
import {StateId} from "../type/StateId.sol";
|
16
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
17
21
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
18
|
-
|
19
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
20
|
-
import {IVersionable} from "../shared/IVersionable.sol";
|
21
|
-
import {Versionable} from "../shared/Versionable.sol";
|
22
|
-
import {IService} from "../shared/IService.sol";
|
23
|
-
import {Service} from "../shared/Service.sol";
|
24
|
-
|
25
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
26
|
-
|
27
|
-
import {IProductComponent} from "./IProductComponent.sol";
|
28
|
-
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
29
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
30
|
-
import {Product} from "./Product.sol";
|
31
|
-
|
32
|
-
import {IComponents} from "../instance/module/IComponents.sol";
|
33
|
-
import {IPolicy} from "../instance/module/IPolicy.sol";
|
34
|
-
import {IRisk} from "../instance/module/IRisk.sol";
|
35
|
-
import {IBundle} from "../instance/module/IBundle.sol";
|
36
|
-
import {IProductService} from "./IProductService.sol";
|
37
|
-
|
38
22
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
39
|
-
|
40
|
-
import {IInstance} from "../instance/IInstance.sol";
|
41
23
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
42
24
|
|
43
|
-
import {IApplicationService} from "./IApplicationService.sol";
|
44
|
-
import {IBundleService} from "../pool/IBundleService.sol";
|
45
|
-
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
46
|
-
import {IPoolService} from "../pool/IPoolService.sol";
|
47
|
-
import {IPricingService} from "./IPricingService.sol";
|
48
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
49
25
|
|
50
26
|
|
51
27
|
contract ApplicationService is
|
@@ -70,13 +46,13 @@ contract ApplicationService is
|
|
70
46
|
address authority
|
71
47
|
) = abi.decode(data, (address, address, address));
|
72
48
|
|
73
|
-
|
49
|
+
_initializeService(registryAddress, address(0), owner);
|
74
50
|
|
75
51
|
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
76
52
|
_pricingService = IPricingService(_getServiceAddress(PRICE()));
|
77
53
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
78
54
|
|
79
|
-
|
55
|
+
_registerInterface(type(IApplicationService).interfaceId);
|
80
56
|
}
|
81
57
|
|
82
58
|
|
@@ -135,8 +111,7 @@ contract ApplicationService is
|
|
135
111
|
view
|
136
112
|
returns (Amount premiumAmount)
|
137
113
|
{
|
138
|
-
return
|
139
|
-
_pricingService.calculatePremium(
|
114
|
+
return _pricingService.calculatePremium(
|
140
115
|
info.productNftId,
|
141
116
|
info.riskId,
|
142
117
|
info.sumInsuredAmount,
|
@@ -144,7 +119,7 @@ contract ApplicationService is
|
|
144
119
|
info.applicationData,
|
145
120
|
info.bundleNftId,
|
146
121
|
info.referralId
|
147
|
-
).premiumAmount
|
122
|
+
).premiumAmount;
|
148
123
|
}
|
149
124
|
|
150
125
|
|
@@ -152,6 +127,7 @@ contract ApplicationService is
|
|
152
127
|
address applicationOwner,
|
153
128
|
RiskId riskId,
|
154
129
|
Amount sumInsuredAmount,
|
130
|
+
Amount premiumAmount,
|
155
131
|
Seconds lifetime,
|
156
132
|
NftId bundleNftId,
|
157
133
|
ReferralId referralId,
|
@@ -176,14 +152,45 @@ contract ApplicationService is
|
|
176
152
|
applicationNftId = _registerApplication(productNftId, applicationOwner);
|
177
153
|
|
178
154
|
// create policy info for application
|
179
|
-
IPolicy.PolicyInfo memory applicationInfo =
|
155
|
+
IPolicy.PolicyInfo memory applicationInfo = _createApplicationInfo(
|
156
|
+
productNftId,
|
157
|
+
riskId,
|
158
|
+
sumInsuredAmount,
|
159
|
+
premiumAmount,
|
160
|
+
lifetime,
|
161
|
+
bundleNftId,
|
162
|
+
referralId,
|
163
|
+
applicationData);
|
164
|
+
|
165
|
+
// register application with instance
|
166
|
+
instance.getInstanceStore().createApplication(
|
167
|
+
applicationNftId,
|
168
|
+
applicationInfo);
|
169
|
+
|
170
|
+
// TODO: add logging
|
171
|
+
}
|
172
|
+
|
173
|
+
function _createApplicationInfo(
|
174
|
+
NftId productNftId,
|
175
|
+
RiskId riskId,
|
176
|
+
Amount sumInsuredAmount,
|
177
|
+
Amount premiumAmount,
|
178
|
+
Seconds lifetime,
|
179
|
+
NftId bundleNftId,
|
180
|
+
ReferralId referralId,
|
181
|
+
bytes memory applicationData
|
182
|
+
)
|
183
|
+
internal
|
184
|
+
virtual
|
185
|
+
returns (IPolicy.PolicyInfo memory applicationInfo)
|
186
|
+
{
|
187
|
+
return IPolicy.PolicyInfo({
|
180
188
|
productNftId: productNftId,
|
181
189
|
bundleNftId: bundleNftId,
|
182
190
|
referralId: referralId,
|
183
191
|
riskId: riskId,
|
184
192
|
sumInsuredAmount: sumInsuredAmount,
|
185
|
-
premiumAmount:
|
186
|
-
premiumPaidAmount: AmountLib.zero(),
|
193
|
+
premiumAmount: premiumAmount,
|
187
194
|
lifetime: lifetime,
|
188
195
|
applicationData: applicationData,
|
189
196
|
processData: "",
|
@@ -195,21 +202,8 @@ contract ApplicationService is
|
|
195
202
|
expiredAt: zeroTimestamp(),
|
196
203
|
closedAt: zeroTimestamp()
|
197
204
|
});
|
198
|
-
|
199
|
-
// TODO consider to provide this amount externally
|
200
|
-
// actual calculation is done 2nd time anyway for premium collection
|
201
|
-
// calculate premium amount
|
202
|
-
applicationInfo.premiumAmount = _calculatePremiumAmount(applicationInfo);
|
203
|
-
|
204
|
-
// register application with instance
|
205
|
-
instance.getInstanceStore().createApplication(
|
206
|
-
applicationNftId,
|
207
|
-
applicationInfo);
|
208
|
-
|
209
|
-
// TODO: add logging
|
210
205
|
}
|
211
206
|
|
212
|
-
|
213
207
|
function renew(
|
214
208
|
NftId policyNftId, // policy to be renewd (renewal inherits policy attributes)
|
215
209
|
NftId bundleNftId // will likely need a newer bundle for underwriting
|
@@ -218,7 +212,7 @@ contract ApplicationService is
|
|
218
212
|
virtual override
|
219
213
|
returns (NftId applicationNftId)
|
220
214
|
{
|
221
|
-
|
215
|
+
// TODO implement
|
222
216
|
}
|
223
217
|
|
224
218
|
|
@@ -234,7 +228,7 @@ contract ApplicationService is
|
|
234
228
|
external
|
235
229
|
virtual override
|
236
230
|
{
|
237
|
-
|
231
|
+
// TODO implement
|
238
232
|
}
|
239
233
|
|
240
234
|
function revoke(NftId applicationNftId)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IVersionable} from "../
|
5
|
-
import {ProxyManager} from "../
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {ApplicationService} from "./ApplicationService.sol";
|
7
7
|
|
8
8
|
contract ApplicationServiceManager is ProxyManager {
|
@@ -0,0 +1,53 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Fee} from "../type/Fee.sol";
|
5
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
6
|
+
import {NftId} from "../type/NftId.sol";
|
7
|
+
import {Product} from "../product/Product.sol";
|
8
|
+
|
9
|
+
abstract contract BasicProduct is
|
10
|
+
Product
|
11
|
+
{
|
12
|
+
|
13
|
+
function setFees(
|
14
|
+
Fee memory productFee,
|
15
|
+
Fee memory processingFee
|
16
|
+
)
|
17
|
+
external
|
18
|
+
virtual
|
19
|
+
onlyOwner()
|
20
|
+
restricted()
|
21
|
+
{
|
22
|
+
_setFees(productFee, processingFee);
|
23
|
+
}
|
24
|
+
|
25
|
+
function _initializeBasicProduct(
|
26
|
+
address registry,
|
27
|
+
NftId instanceNftId,
|
28
|
+
IAuthorization authorization,
|
29
|
+
address initialOwner,
|
30
|
+
string memory name,
|
31
|
+
address token,
|
32
|
+
bool isInterceptor,
|
33
|
+
address pool,
|
34
|
+
address distribution
|
35
|
+
)
|
36
|
+
internal
|
37
|
+
virtual
|
38
|
+
onlyInitializing()
|
39
|
+
{
|
40
|
+
_initializeProduct(
|
41
|
+
registry,
|
42
|
+
instanceNftId,
|
43
|
+
authorization,
|
44
|
+
initialOwner,
|
45
|
+
name,
|
46
|
+
token,
|
47
|
+
isInterceptor,
|
48
|
+
pool,
|
49
|
+
distribution,
|
50
|
+
"", //registryData,
|
51
|
+
""); // componentData
|
52
|
+
}
|
53
|
+
}
|