@etherisc/gif-next 0.0.2-7177fd8-761 → 0.0.2-71cf987-554
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 +5 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +121 -70
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +124 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
- 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 +60 -37
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +157 -273
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +91 -239
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +188 -290
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +107 -123
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +78 -92
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +78 -31
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +53 -31
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +29 -84
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +56 -123
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +248 -164
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +446 -81
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +85 -242
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +79 -87
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +335 -126
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +131 -247
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
- 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 +66 -80
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +79 -227
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -159
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +75 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -235
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +82 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +170 -226
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +114 -110
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +53 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +91 -77
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +232 -131
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +102 -222
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +300 -319
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +93 -97
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +71 -152
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -84
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +136 -243
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +280 -235
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +116 -112
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +29 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +161 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +141 -16
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +124 -97
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +242 -295
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +107 -131
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +199 -309
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +96 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +136 -243
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -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 +289 -32
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +495 -93
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +219 -166
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +78 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -75
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1696 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +377 -235
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +68 -201
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +341 -324
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +122 -132
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +55 -54
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +321 -19
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +66 -80
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +79 -227
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +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 +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
- 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 +47 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +288 -16
- 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 +82 -55
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +63 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +167 -270
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +100 -97
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +71 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +71 -79
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +169 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +54 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +32 -8
- 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 +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/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 +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +15 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +55 -70
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +130 -120
- package/contracts/authorization/AccessManagerCloneable.sol +67 -3
- package/contracts/authorization/Authorization.sol +111 -40
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -4
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +2 -1
- package/contracts/distribution/Distribution.sol +7 -17
- package/contracts/distribution/DistributionService.sol +82 -50
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +8 -2
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +73 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +415 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- 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/IInstance.sol +10 -30
- package/contracts/instance/IInstanceService.sol +0 -20
- package/contracts/instance/Instance.sol +29 -51
- package/contracts/instance/InstanceAdmin.sol +102 -73
- package/contracts/instance/InstanceAuthorizationV3.sol +11 -21
- package/contracts/instance/InstanceReader.sol +106 -19
- package/contracts/instance/InstanceService.sol +33 -88
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/base/ObjectLifecycle.sol +7 -1
- package/contracts/instance/module/IComponents.sol +10 -5
- package/contracts/instance/module/IPolicy.sol +23 -23
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +6 -16
- package/contracts/oracle/OracleService.sol +47 -34
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +14 -26
- package/contracts/pool/BasicPoolAuthorization.sol +0 -1
- package/contracts/pool/BundleService.sol +92 -36
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +10 -0
- package/contracts/pool/IPoolComponent.sol +18 -8
- package/contracts/pool/IPoolService.sol +49 -29
- package/contracts/pool/Pool.sol +53 -46
- package/contracts/pool/PoolService.sol +156 -136
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +22 -13
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +7 -6
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +310 -115
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IClaimService.sol +30 -7
- package/contracts/product/IPolicyService.sol +16 -20
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +23 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -2
- package/contracts/product/PolicyService.sol +220 -129
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +49 -53
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +108 -66
- package/contracts/product/{ProductService.sol → RiskService.sol} +7 -10
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +68 -38
- package/contracts/registry/IRegistry.sol +57 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +342 -201
- package/contracts/registry/RegistryAdmin.sol +147 -179
- package/contracts/registry/RegistryService.sol +35 -46
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseAdmin.sol +248 -0
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +223 -203
- package/contracts/registry/ServiceAuthorizationV3.sol +16 -22
- package/contracts/shared/Component.sol +36 -52
- package/contracts/shared/ComponentService.sol +245 -140
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +23 -14
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +6 -3
- package/contracts/shared/IComponentService.sol +25 -13
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -17
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +72 -31
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +27 -7
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +19 -9
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +20 -18
- package/contracts/shared/TokenHandler.sol +99 -22
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +2 -1
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +13 -32
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +17 -17
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/ObjectType.sol +16 -11
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/RoleId.sol +2 -11
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/UFixed.sol +4 -0
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +2 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/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/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.dbg.json +0 -4
- package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.json +0 -42
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/InitializableCustom.sol +0 -177
- package/contracts/shared/TokenTransferLib.sol +0 -60
@@ -6,23 +6,20 @@ import {IBundleService} from "./IBundleService.sol";
|
|
6
6
|
import {IComponents} from "../instance/module/IComponents.sol";
|
7
7
|
import {IComponentService} from "../shared/IComponentService.sol";
|
8
8
|
import {IInstance} from "../instance/IInstance.sol";
|
9
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
10
9
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
10
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
11
11
|
import {IPoolService} from "./IPoolService.sol";
|
12
12
|
import {IRegistry} from "../registry/IRegistry.sol";
|
13
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
14
13
|
import {IStaking} from "../staking/IStaking.sol";
|
15
14
|
|
16
15
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
16
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
17
17
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
18
18
|
import {NftId} from "../type/NftId.sol";
|
19
|
-
import {ObjectType, POOL, BUNDLE,
|
20
|
-
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
19
|
+
import {ObjectType, POOL, BUNDLE, PRODUCT, POLICY, COMPONENT} from "../type/ObjectType.sol";
|
21
20
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
22
21
|
import {KEEP_STATE} from "../type/StateId.sol";
|
23
22
|
import {Seconds} from "../type/Seconds.sol";
|
24
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
25
|
-
import {TokenTransferLib} from "../shared/TokenTransferLib.sol";
|
26
23
|
import {UFixed} from "../type/UFixed.sol";
|
27
24
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
28
25
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
@@ -36,9 +33,6 @@ contract PoolService is
|
|
36
33
|
{
|
37
34
|
IBundleService internal _bundleService;
|
38
35
|
IComponentService internal _componentService;
|
39
|
-
IInstanceService private _instanceService;
|
40
|
-
IRegistryService private _registryService;
|
41
|
-
|
42
36
|
IStaking private _staking;
|
43
37
|
|
44
38
|
function _initialize(
|
@@ -46,27 +40,24 @@ contract PoolService is
|
|
46
40
|
bytes memory data
|
47
41
|
)
|
48
42
|
internal
|
49
|
-
initializer
|
50
43
|
virtual override
|
44
|
+
initializer()
|
51
45
|
{
|
52
46
|
(
|
53
|
-
address registryAddress
|
54
|
-
//address managerAddress
|
47
|
+
address registryAddress,
|
55
48
|
address authority
|
56
|
-
) = abi.decode(data, (address, address
|
49
|
+
) = abi.decode(data, (address, address));
|
57
50
|
|
58
|
-
|
51
|
+
_initializeService(registryAddress, authority, owner);
|
59
52
|
|
60
|
-
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
61
53
|
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
62
|
-
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
63
54
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
64
|
-
|
65
55
|
_staking = IStaking(getRegistry().getStakingAddress());
|
66
56
|
|
67
|
-
|
57
|
+
_registerInterface(type(IPoolService).interfaceId);
|
68
58
|
}
|
69
59
|
|
60
|
+
|
70
61
|
/// @inheritdoc IPoolService
|
71
62
|
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
72
63
|
external
|
@@ -83,97 +74,40 @@ contract PoolService is
|
|
83
74
|
emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
|
84
75
|
}
|
85
76
|
|
86
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
87
|
-
external
|
88
|
-
virtual
|
89
|
-
{
|
90
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
91
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
92
|
-
|
93
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
94
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
95
|
-
|
96
|
-
// bundle owner role may only be set once per pool
|
97
|
-
if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
|
98
|
-
revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
|
99
|
-
}
|
100
|
-
|
101
|
-
poolInfo.bundleOwnerRole = bundleOwnerRole;
|
102
|
-
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
103
|
-
|
104
|
-
emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
|
105
|
-
}
|
106
77
|
|
107
78
|
/// @inheritdoc IPoolService
|
108
79
|
function createBundle(
|
109
80
|
address bundleOwner, // initial bundle owner
|
110
81
|
Fee memory fee, // fees deducted from premium that go to bundle owner
|
111
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
112
82
|
Seconds lifetime, // initial duration for which new policies are covered
|
113
83
|
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
114
84
|
)
|
115
85
|
external
|
116
86
|
virtual
|
117
|
-
returns(NftId bundleNftId
|
87
|
+
returns(NftId bundleNftId)
|
118
88
|
{
|
119
89
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
120
90
|
|
121
|
-
|
122
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
123
|
-
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
124
|
-
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
125
|
-
if (currentPoolBalance + stakingAmount > poolInfo.maxBalanceAmount) {
|
126
|
-
revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, stakingAmount);
|
127
|
-
}
|
128
|
-
}
|
129
|
-
|
130
|
-
|
131
|
-
Amount stakingFeeAmount;
|
132
|
-
(stakingFeeAmount, netStakedAmount) = FeeLib.calculateFee(
|
133
|
-
_getStakingFee(instance.getInstanceReader(), poolNftId),
|
134
|
-
stakingAmount);
|
135
|
-
|
136
|
-
|
91
|
+
// create the empty bundle
|
137
92
|
bundleNftId = _bundleService.create(
|
138
93
|
instance,
|
139
94
|
poolNftId,
|
140
95
|
bundleOwner,
|
141
96
|
fee,
|
142
|
-
|
97
|
+
AmountLib.zero(),
|
143
98
|
lifetime,
|
144
99
|
filter);
|
145
100
|
|
146
|
-
// pool book keeping
|
147
|
-
_componentService.increasePoolBalance(
|
148
|
-
instance.getInstanceStore(),
|
149
|
-
poolNftId,
|
150
|
-
netStakedAmount,
|
151
|
-
stakingFeeAmount);
|
152
|
-
|
153
|
-
// pool bookkeeping and collect tokens from bundle owner
|
154
|
-
_collectStakingAmount(
|
155
|
-
instance.getInstanceReader(),
|
156
|
-
poolNftId,
|
157
|
-
bundleOwner,
|
158
|
-
stakingAmount);
|
159
|
-
|
160
101
|
emit LogPoolServiceBundleCreated(instance.getNftId(), poolNftId, bundleNftId);
|
161
102
|
}
|
162
103
|
|
163
|
-
function _getStakingFee(InstanceReader instanceReader, NftId poolNftId)
|
164
|
-
internal
|
165
|
-
virtual
|
166
|
-
view
|
167
|
-
returns (Fee memory stakingFee)
|
168
|
-
{
|
169
|
-
NftId productNftId = instanceReader.getComponentInfo(poolNftId).productNftId;
|
170
|
-
return instanceReader.getProductInfo(productNftId).stakingFee;
|
171
|
-
}
|
172
104
|
|
173
105
|
function closeBundle(NftId bundleNftId)
|
174
106
|
external
|
175
107
|
virtual
|
176
108
|
{
|
109
|
+
_checkNftType(bundleNftId, BUNDLE());
|
110
|
+
|
177
111
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
178
112
|
|
179
113
|
// TODO get performance fee for pool (#477)
|
@@ -191,14 +125,48 @@ contract PoolService is
|
|
191
125
|
|
192
126
|
if ((unstakedAmount + feeAmount).gtz()){
|
193
127
|
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
|
194
|
-
|
128
|
+
poolComponentInfo.tokenHandler.distributeTokens(
|
195
129
|
poolComponentInfo.wallet,
|
196
130
|
getRegistry().ownerOf(bundleNftId),
|
197
|
-
unstakedAmount + feeAmount
|
198
|
-
|
131
|
+
unstakedAmount + feeAmount);
|
132
|
+
}
|
133
|
+
}
|
134
|
+
|
135
|
+
|
136
|
+
/// @inheritdoc IPoolService
|
137
|
+
function processFundedClaim(
|
138
|
+
NftId policyNftId,
|
139
|
+
ClaimId claimId,
|
140
|
+
Amount availableAmount
|
141
|
+
)
|
142
|
+
external
|
143
|
+
virtual
|
144
|
+
{
|
145
|
+
_checkNftType(policyNftId, POLICY());
|
146
|
+
|
147
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
148
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
149
|
+
NftId productNftId = _getProductNftId(poolNftId);
|
150
|
+
|
151
|
+
// check policy matches with calling pool
|
152
|
+
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
153
|
+
if(policyInfo.productNftId != productNftId) {
|
154
|
+
revert ErrorPoolServicePolicyPoolMismatch(
|
155
|
+
policyNftId,
|
156
|
+
policyInfo.productNftId,
|
157
|
+
productNftId);
|
158
|
+
}
|
159
|
+
|
160
|
+
emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
|
161
|
+
|
162
|
+
// callback to product component if applicable
|
163
|
+
if (instanceReader.getProductInfo(productNftId).isProcessingFundedClaims) {
|
164
|
+
address productAddress = getRegistry().getObjectAddress(productNftId);
|
165
|
+
IProductComponent(productAddress).processFundedClaim(policyNftId, claimId, availableAmount);
|
199
166
|
}
|
200
167
|
}
|
201
168
|
|
169
|
+
|
202
170
|
/// @inheritdoc IPoolService
|
203
171
|
function stake(NftId bundleNftId, Amount amount)
|
204
172
|
external
|
@@ -206,6 +174,8 @@ contract PoolService is
|
|
206
174
|
// TODO: restricted() (once #462 is done)
|
207
175
|
returns(Amount netAmount)
|
208
176
|
{
|
177
|
+
_checkNftType(bundleNftId, BUNDLE());
|
178
|
+
|
209
179
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
210
180
|
InstanceReader instanceReader = instance.getInstanceReader();
|
211
181
|
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
@@ -223,13 +193,19 @@ contract PoolService is
|
|
223
193
|
}
|
224
194
|
|
225
195
|
// calculate fees
|
196
|
+
IRegistry registry = getRegistry();
|
226
197
|
Amount feeAmount;
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
198
|
+
|
199
|
+
{
|
200
|
+
NftId productNftId = registry.getObjectInfo(poolNftId).parentNftId;
|
201
|
+
Fee memory stakingFee = instanceReader.getProductInfo(productNftId).stakingFee;
|
202
|
+
(
|
203
|
+
feeAmount,
|
204
|
+
netAmount
|
205
|
+
) = FeeLib.calculateFee(
|
206
|
+
stakingFee,
|
207
|
+
amount);
|
208
|
+
}
|
233
209
|
|
234
210
|
// do all the bookkeeping
|
235
211
|
_componentService.increasePoolBalance(
|
@@ -241,8 +217,10 @@ contract PoolService is
|
|
241
217
|
_bundleService.stake(instance, bundleNftId, netAmount);
|
242
218
|
|
243
219
|
// collect tokens from bundle owner
|
244
|
-
address bundleOwner =
|
220
|
+
address bundleOwner = registry.ownerOf(bundleNftId);
|
245
221
|
emit LogPoolServiceBundleStaked(instance.getNftId(), poolNftId, bundleNftId, amount, netAmount);
|
222
|
+
|
223
|
+
// TODO only collect staking token when pool is not externally managed
|
246
224
|
_collectStakingAmount(
|
247
225
|
instanceReader,
|
248
226
|
poolNftId,
|
@@ -257,6 +235,8 @@ contract PoolService is
|
|
257
235
|
// TODO: restricted() (once #462 is done)
|
258
236
|
returns(Amount netAmount)
|
259
237
|
{
|
238
|
+
_checkNftType(bundleNftId, BUNDLE());
|
239
|
+
|
260
240
|
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
261
241
|
InstanceReader instanceReader = instance.getInstanceReader();
|
262
242
|
InstanceStore instanceStore = instance.getInstanceStore();
|
@@ -282,46 +262,70 @@ contract PoolService is
|
|
282
262
|
AmountLib.zero());
|
283
263
|
|
284
264
|
IComponents.ComponentInfo memory poolComponentInfo = instanceReader.getComponentInfo(poolNftId);
|
285
|
-
|
265
|
+
|
286
266
|
// transfer amount to bundle owner
|
287
267
|
address owner = getRegistry().ownerOf(bundleNftId);
|
288
268
|
emit LogPoolServiceBundleUnstaked(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount);
|
289
|
-
|
290
|
-
|
269
|
+
poolComponentInfo.tokenHandler.distributeTokens(
|
270
|
+
poolComponentInfo.wallet,
|
291
271
|
owner,
|
292
|
-
unstakedAmount
|
293
|
-
|
272
|
+
unstakedAmount);
|
273
|
+
|
294
274
|
return unstakedAmount;
|
295
275
|
}
|
296
276
|
|
277
|
+
|
278
|
+
function fundPoolWallet(NftId poolNftId, Amount amount)
|
279
|
+
external
|
280
|
+
virtual
|
281
|
+
restricted()
|
282
|
+
{
|
283
|
+
_checkNftType(poolNftId, POOL());
|
284
|
+
// TODO check that poolNftId is externally managed
|
285
|
+
// TODO implement
|
286
|
+
}
|
287
|
+
|
288
|
+
|
289
|
+
function defundPoolWallet(NftId poolNftId, Amount amount)
|
290
|
+
external
|
291
|
+
virtual
|
292
|
+
restricted()
|
293
|
+
{
|
294
|
+
_checkNftType(poolNftId, POOL());
|
295
|
+
|
296
|
+
// TODO check that poolNftId is externally managed
|
297
|
+
// TODO implement
|
298
|
+
}
|
299
|
+
|
297
300
|
function processSale(
|
298
301
|
NftId bundleNftId,
|
299
|
-
IPolicy.
|
302
|
+
IPolicy.PremiumInfo memory premium
|
300
303
|
)
|
301
304
|
external
|
302
305
|
virtual
|
303
306
|
restricted()
|
304
307
|
{
|
308
|
+
_checkNftType(bundleNftId, BUNDLE());
|
309
|
+
|
305
310
|
IRegistry registry = getRegistry();
|
306
|
-
IRegistry.ObjectInfo memory
|
307
|
-
IRegistry.ObjectInfo memory
|
308
|
-
|
309
|
-
IInstance instance = IInstance(instanceObjectInfo.objectAddress);
|
311
|
+
IRegistry.ObjectInfo memory bundleInfo = registry.getObjectInfo(bundleNftId);
|
312
|
+
IRegistry.ObjectInfo memory poolInfo = registry.getObjectInfo(bundleInfo.parentNftId);
|
313
|
+
IInstance instance = _getInstanceForComponent(registry, poolInfo);
|
310
314
|
|
311
|
-
Amount poolFeeAmount =
|
312
|
-
Amount bundleFeeAmount =
|
313
|
-
Amount bundleNetAmount =
|
315
|
+
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
316
|
+
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
317
|
+
Amount bundleNetAmount = premium.netPremiumAmount;
|
314
318
|
|
315
319
|
InstanceStore instanceStore = instance.getInstanceStore();
|
316
320
|
_componentService.increasePoolBalance(
|
317
321
|
instanceStore,
|
318
|
-
|
322
|
+
poolInfo.nftId,
|
319
323
|
bundleNetAmount + bundleFeeAmount,
|
320
324
|
poolFeeAmount);
|
321
325
|
|
322
326
|
_componentService.increaseBundleBalance(
|
323
327
|
instanceStore,
|
324
|
-
|
328
|
+
bundleInfo.nftId,
|
325
329
|
bundleNetAmount,
|
326
330
|
bundleFeeAmount);
|
327
331
|
}
|
@@ -339,13 +343,17 @@ contract PoolService is
|
|
339
343
|
virtual
|
340
344
|
restricted()
|
341
345
|
returns (
|
342
|
-
Amount
|
343
|
-
Amount
|
346
|
+
Amount totalCollateralAmount,
|
347
|
+
Amount localCollateralAmount
|
344
348
|
)
|
345
349
|
{
|
350
|
+
_checkNftType(productNftId, PRODUCT());
|
351
|
+
_checkNftType(applicationNftId, POLICY());
|
352
|
+
_checkNftType(bundleNftId, BUNDLE());
|
353
|
+
|
346
354
|
(
|
347
|
-
|
348
|
-
|
355
|
+
totalCollateralAmount,
|
356
|
+
localCollateralAmount
|
349
357
|
) = calculateRequiredCollateral(
|
350
358
|
instance.getInstanceReader(),
|
351
359
|
productNftId,
|
@@ -363,16 +371,9 @@ contract PoolService is
|
|
363
371
|
instance.getNftId(),
|
364
372
|
token,
|
365
373
|
totalCollateralAmount);
|
366
|
-
|
367
|
-
// hierarhical riskpool setup
|
368
|
-
// TODO loop in with pool component to guarantee availability of external capital
|
369
|
-
if(totalCollateralAmount > localCollateralAmount) {
|
370
|
-
|
371
|
-
}
|
372
374
|
}
|
373
375
|
|
374
|
-
|
375
|
-
function reduceCollateral(
|
376
|
+
function processPayout(
|
376
377
|
IInstance instance,
|
377
378
|
address token,
|
378
379
|
NftId policyNftId,
|
@@ -383,6 +384,24 @@ contract PoolService is
|
|
383
384
|
virtual
|
384
385
|
restricted()
|
385
386
|
{
|
387
|
+
_checkNftType(policyNftId, POLICY());
|
388
|
+
|
389
|
+
NftId bundleNftId = policyInfo.bundleNftId;
|
390
|
+
NftId poolNftId = getRegistry().getObjectInfo(bundleNftId).parentNftId;
|
391
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
392
|
+
|
393
|
+
_componentService.decreasePoolBalance(
|
394
|
+
instanceStore,
|
395
|
+
poolNftId,
|
396
|
+
payoutAmount,
|
397
|
+
AmountLib.zero());
|
398
|
+
|
399
|
+
_componentService.decreaseBundleBalance(
|
400
|
+
instanceStore,
|
401
|
+
bundleNftId,
|
402
|
+
payoutAmount,
|
403
|
+
AmountLib.zero());
|
404
|
+
|
386
405
|
_bundleService.releaseCollateral(
|
387
406
|
instance,
|
388
407
|
policyNftId,
|
@@ -409,6 +428,8 @@ contract PoolService is
|
|
409
428
|
virtual
|
410
429
|
restricted()
|
411
430
|
{
|
431
|
+
_checkNftType(policyNftId, POLICY());
|
432
|
+
|
412
433
|
Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
|
413
434
|
|
414
435
|
_bundleService.releaseCollateral(
|
@@ -437,16 +458,18 @@ contract PoolService is
|
|
437
458
|
public
|
438
459
|
view
|
439
460
|
returns(
|
440
|
-
Amount
|
441
|
-
Amount
|
461
|
+
Amount totalCollateralAmount,
|
462
|
+
Amount localCollateralAmount
|
442
463
|
)
|
443
464
|
{
|
465
|
+
_checkNftType(productNftId, PRODUCT());
|
466
|
+
|
444
467
|
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
445
468
|
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
446
469
|
|
447
470
|
(
|
448
|
-
|
449
|
-
|
471
|
+
totalCollateralAmount,
|
472
|
+
localCollateralAmount
|
450
473
|
) = calculateRequiredCollateral(
|
451
474
|
poolInfo.collateralizationLevel,
|
452
475
|
poolInfo.retentionLevel,
|
@@ -462,18 +485,17 @@ contract PoolService is
|
|
462
485
|
public
|
463
486
|
pure
|
464
487
|
returns(
|
465
|
-
Amount
|
466
|
-
Amount
|
488
|
+
Amount totalCollateralAmount,
|
489
|
+
Amount localCollateralAmount
|
467
490
|
)
|
468
491
|
{
|
469
|
-
//
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
//
|
474
|
-
|
475
|
-
|
476
|
-
totalCollateralAmount = localCollateralAmount;
|
492
|
+
// collateralization is applied to sum insured
|
493
|
+
UFixed totalUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
|
494
|
+
totalCollateralAmount = AmountLib.toAmount(totalUFixed.toInt());
|
495
|
+
|
496
|
+
// retention level defines how much capital is required locally
|
497
|
+
localCollateralAmount = AmountLib.toAmount(
|
498
|
+
(retentionLevel * totalUFixed).toInt());
|
477
499
|
}
|
478
500
|
|
479
501
|
|
@@ -482,6 +504,7 @@ contract PoolService is
|
|
482
504
|
Amount stakingAmount
|
483
505
|
)
|
484
506
|
internal
|
507
|
+
pure
|
485
508
|
returns (Amount stakingNetAmount)
|
486
509
|
{
|
487
510
|
stakingNetAmount = stakingAmount;
|
@@ -508,14 +531,11 @@ contract PoolService is
|
|
508
531
|
|
509
532
|
// collecting investor token
|
510
533
|
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
511
|
-
TokenHandler tokenHandler = componentInfo.tokenHandler;
|
512
534
|
address poolWallet = componentInfo.wallet;
|
513
|
-
|
514
|
-
TokenTransferLib.collectTokens(
|
535
|
+
componentInfo.tokenHandler.collectTokens(
|
515
536
|
bundleOwner,
|
516
537
|
poolWallet,
|
517
|
-
amount
|
518
|
-
tokenHandler);
|
538
|
+
amount);
|
519
539
|
}
|
520
540
|
|
521
541
|
function _getDomain() internal pure override returns(ObjectType) {
|
@@ -12,14 +12,14 @@ contract PoolServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with pool service implementation
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
|
-
ProxyManager(registryAddress)
|
19
18
|
{
|
20
19
|
PoolService poolSrv = new PoolService{salt: salt}();
|
21
|
-
bytes memory data = abi.encode(
|
22
|
-
IVersionable versionable =
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
23
|
address(poolSrv),
|
24
24
|
data,
|
25
25
|
salt);
|
@@ -13,7 +13,7 @@ import {IRegistryService} from "../registry/IRegistryService.sol";
|
|
13
13
|
import {AmountLib} from "../type/Amount.sol";
|
14
14
|
import {Seconds} from "../type/Seconds.sol";
|
15
15
|
import {zeroTimestamp} from "../type/Timestamp.sol";
|
16
|
-
import {ObjectType, DISTRIBUTION, PRODUCT, REGISTRY, APPLICATION, POLICY, PRICE} from "../type/ObjectType.sol";
|
16
|
+
import {ObjectType, BUNDLE, DISTRIBUTION, PRODUCT, REGISTRY, APPLICATION, POLICY, PRICE} from "../type/ObjectType.sol";
|
17
17
|
import {REVOKED} from "../type/StateId.sol";
|
18
18
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
19
19
|
import {ReferralId} from "../type/Referral.sol";
|
@@ -41,18 +41,17 @@ contract ApplicationService is
|
|
41
41
|
initializer()
|
42
42
|
{
|
43
43
|
(
|
44
|
-
address registryAddress
|
45
|
-
//address managerAddress
|
44
|
+
address registryAddress,
|
46
45
|
address authority
|
47
|
-
) = abi.decode(data, (address, address
|
46
|
+
) = abi.decode(data, (address, address));
|
48
47
|
|
49
|
-
|
48
|
+
_initializeService(registryAddress, authority, owner);
|
50
49
|
|
51
50
|
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
52
51
|
_pricingService = IPricingService(_getServiceAddress(PRICE()));
|
53
52
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
54
53
|
|
55
|
-
|
54
|
+
_registerInterface(type(IApplicationService).interfaceId);
|
56
55
|
}
|
57
56
|
|
58
57
|
|
@@ -111,8 +110,7 @@ contract ApplicationService is
|
|
111
110
|
view
|
112
111
|
returns (Amount premiumAmount)
|
113
112
|
{
|
114
|
-
return
|
115
|
-
_pricingService.calculatePremium(
|
113
|
+
return _pricingService.calculatePremium(
|
116
114
|
info.productNftId,
|
117
115
|
info.riskId,
|
118
116
|
info.sumInsuredAmount,
|
@@ -120,7 +118,7 @@ contract ApplicationService is
|
|
120
118
|
info.applicationData,
|
121
119
|
info.bundleNftId,
|
122
120
|
info.referralId
|
123
|
-
).premiumAmount
|
121
|
+
).premiumAmount;
|
124
122
|
}
|
125
123
|
|
126
124
|
|
@@ -136,8 +134,11 @@ contract ApplicationService is
|
|
136
134
|
)
|
137
135
|
external
|
138
136
|
virtual
|
137
|
+
nonReentrant()
|
139
138
|
returns (NftId applicationNftId)
|
140
139
|
{
|
140
|
+
_checkNftType(bundleNftId, BUNDLE());
|
141
|
+
|
141
142
|
(NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
142
143
|
|
143
144
|
// check if provided references are valid and linked to calling product contract
|
@@ -192,7 +193,6 @@ contract ApplicationService is
|
|
192
193
|
riskId: riskId,
|
193
194
|
sumInsuredAmount: sumInsuredAmount,
|
194
195
|
premiumAmount: premiumAmount,
|
195
|
-
premiumPaidAmount: AmountLib.zero(),
|
196
196
|
lifetime: lifetime,
|
197
197
|
applicationData: applicationData,
|
198
198
|
processData: "",
|
@@ -211,9 +211,12 @@ contract ApplicationService is
|
|
211
211
|
NftId bundleNftId // will likely need a newer bundle for underwriting
|
212
212
|
)
|
213
213
|
external
|
214
|
-
virtual
|
214
|
+
virtual
|
215
|
+
nonReentrant()
|
215
216
|
returns (NftId applicationNftId)
|
216
217
|
{
|
218
|
+
_checkNftType(policyNftId, POLICY());
|
219
|
+
_checkNftType(bundleNftId, BUNDLE());
|
217
220
|
// TODO implement
|
218
221
|
}
|
219
222
|
|
@@ -228,15 +231,21 @@ contract ApplicationService is
|
|
228
231
|
bytes memory applicationData
|
229
232
|
)
|
230
233
|
external
|
231
|
-
virtual
|
234
|
+
virtual
|
235
|
+
nonReentrant()
|
232
236
|
{
|
237
|
+
_checkNftType(applicationNftId, POLICY());
|
238
|
+
_checkNftType(bundleNftId, BUNDLE());
|
233
239
|
// TODO implement
|
234
240
|
}
|
235
241
|
|
236
242
|
function revoke(NftId applicationNftId)
|
237
243
|
external
|
238
|
-
virtual
|
244
|
+
virtual
|
245
|
+
nonReentrant()
|
239
246
|
{
|
247
|
+
_checkNftType(applicationNftId, POLICY());
|
248
|
+
|
240
249
|
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
241
250
|
instance.getInstanceStore().updateApplicationState(applicationNftId, REVOKED());
|
242
251
|
}
|
@@ -12,14 +12,14 @@ contract ApplicationServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with service implementation
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
|
-
ProxyManager(registryAddress)
|
19
18
|
{
|
20
19
|
ApplicationService svc = new ApplicationService{salt: salt}();
|
21
|
-
bytes memory data = abi.encode(
|
22
|
-
IVersionable versionable =
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
23
|
address(svc),
|
24
24
|
data,
|
25
25
|
salt);
|