@etherisc/gif-next 0.0.2-de7c770-422 → 0.0.2-de9ede4-391
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 +28 -7
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1000 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +746 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +767 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +103 -63
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- 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 -32
- 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/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -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 +159 -209
- 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 +99 -125
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +180 -86
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +139 -64
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +87 -108
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +52 -0
- 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 +1441 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1991 -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 +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +187 -169
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +131 -157
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +282 -194
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +564 -249
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +116 -48
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -101
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +149 -60
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +196 -138
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +687 -84
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +118 -148
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +107 -44
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +475 -116
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +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 +119 -169
- 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 +82 -103
- 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 +95 -121
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +147 -79
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +127 -40
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +115 -141
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +148 -150
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +121 -70
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +48 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +102 -134
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +272 -185
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +115 -152
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +413 -263
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +144 -45
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +119 -45
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +103 -40
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +158 -138
- 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 +200 -86
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +144 -61
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +63 -7
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +64 -8
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +178 -19
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +80 -51
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +141 -116
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +29 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +328 -119
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +150 -55
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +170 -107
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +119 -48
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +154 -134
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +81 -26
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -34
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +91 -15
- 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 +135 -51
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +220 -182
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +94 -172
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -32
- 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 +123 -225
- 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 +72 -80
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +483 -477
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -76
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +61 -64
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +425 -261
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +82 -103
- 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 +16 -6
- 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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +94 -120
- 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 +18 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +18 -8
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +66 -8
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +47 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +79 -100
- 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 +3 -3
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +158 -170
- 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 +120 -54
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -53
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +103 -36
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +145 -104
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +3 -3
- 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 +33 -9
- 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 +3 -3
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +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 +99 -5
- 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/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/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
- 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 +79 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +263 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +82 -56
- package/contracts/authorization/Authorization.sol +111 -39
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -3
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +8 -7
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +32 -40
- package/contracts/distribution/DistributionService.sol +86 -65
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +436 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +11 -4
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +37 -6
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +24 -23
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +38 -34
- package/contracts/instance/IInstance.sol +11 -3
- package/contracts/instance/IInstanceService.sol +7 -29
- package/contracts/instance/Instance.sol +36 -26
- package/contracts/instance/InstanceAdmin.sol +57 -54
- package/contracts/instance/InstanceAuthorizationV3.sol +50 -32
- package/contracts/instance/InstanceReader.sol +187 -21
- package/contracts/instance/InstanceService.sol +54 -129
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +12 -2
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +2 -1
- package/contracts/instance/base/ObjectSet.sol +24 -25
- package/contracts/instance/module/IComponents.sol +20 -7
- package/contracts/instance/module/IPolicy.sol +4 -3
- package/contracts/instance/module/IRisk.sol +1 -0
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +4 -15
- package/contracts/oracle/OracleService.sol +110 -80
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +33 -24
- package/contracts/pool/BasicPoolAuthorization.sol +12 -2
- package/contracts/pool/BundleService.sol +74 -87
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +2 -15
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +30 -37
- package/contracts/pool/Pool.sol +141 -122
- package/contracts/pool/PoolService.sol +263 -157
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +31 -20
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +8 -12
- package/contracts/product/BasicProductAuthorization.sol +1 -3
- package/contracts/product/ClaimService.sol +233 -106
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +3 -2
- package/contracts/product/IPolicyService.sol +25 -8
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +23 -3
- package/contracts/product/PolicyService.sol +361 -198
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +10 -11
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +76 -74
- package/contracts/product/RiskService.sol +16 -6
- package/contracts/product/RiskServiceManager.sol +4 -4
- package/contracts/registry/ChainNft.sol +10 -11
- package/contracts/registry/IRegistry.sol +8 -3
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +29 -6
- package/contracts/registry/RegistryAdmin.sol +29 -36
- package/contracts/registry/RegistryService.sol +33 -44
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +205 -210
- package/contracts/registry/ServiceAuthorizationV3.sol +58 -50
- package/contracts/shared/Component.sol +56 -105
- package/contracts/shared/ComponentService.sol +384 -329
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +27 -16
- package/contracts/shared/ContractLib.sol +224 -0
- package/contracts/shared/IComponent.sol +6 -14
- package/contracts/shared/IComponentService.sol +45 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -13
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InstanceLinkedComponent.sol +68 -43
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +23 -3
- package/contracts/shared/PolicyHolder.sol +11 -5
- package/contracts/shared/Registerable.sol +15 -7
- package/contracts/shared/RegistryLinked.sol +6 -12
- package/contracts/shared/Service.sol +16 -14
- package/contracts/shared/TokenHandler.sol +316 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/Staking.sol +42 -25
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +56 -23
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +14 -0
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +30 -4
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/StateId.sol +14 -1
- package/contracts/type/UFixed.sol +13 -119
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +4 -3
- 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/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -12,16 +12,15 @@ contract InstanceServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with instance 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
|
-
InstanceService
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
address(
|
19
|
+
InstanceService svc = new InstanceService{salt: salt}();
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
|
+
address(svc),
|
25
24
|
data,
|
26
25
|
salt);
|
27
26
|
|
@@ -7,10 +7,10 @@ import {Amount} from "../type/Amount.sol";
|
|
7
7
|
import {Key32} from "../type/Key32.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
9
|
import {ClaimId} from "../type/ClaimId.sol";
|
10
|
-
import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
|
10
|
+
import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR, FEE} from "../type/ObjectType.sol";
|
11
11
|
import {RequestId} from "../type/RequestId.sol";
|
12
12
|
import {RiskId} from "../type/RiskId.sol";
|
13
|
-
import {StateId} from "../type/StateId.sol";
|
13
|
+
import {StateId, KEEP_STATE} from "../type/StateId.sol";
|
14
14
|
import {ReferralId} from "../type/Referral.sol";
|
15
15
|
import {DistributorType} from "../type/DistributorType.sol";
|
16
16
|
import {PayoutId} from "../type/PayoutId.sol";
|
@@ -85,6 +85,16 @@ contract InstanceStore is
|
|
85
85
|
_update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
|
86
86
|
}
|
87
87
|
|
88
|
+
|
89
|
+
//--- Fee -----------------------------------------------------------//
|
90
|
+
function createFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
|
91
|
+
_create(_toNftKey32(productNftId, FEE()), abi.encode(info));
|
92
|
+
}
|
93
|
+
|
94
|
+
function updateFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
|
95
|
+
_update(_toNftKey32(productNftId, FEE()), abi.encode(info), KEEP_STATE());
|
96
|
+
}
|
97
|
+
|
88
98
|
//--- Pool --------------------------------------------------------------//
|
89
99
|
|
90
100
|
function createPool(
|
@@ -0,0 +1,119 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
5
|
+
import {Key32} from "../type/Key32.sol";
|
6
|
+
import {LibNftIdSet} from "../type/NftIdSet.sol";
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {RiskIdLib, RiskId} from "../type/RiskId.sol";
|
9
|
+
|
10
|
+
import {ObjectSet} from "./base/ObjectSet.sol";
|
11
|
+
|
12
|
+
contract RiskSet is
|
13
|
+
ObjectSet
|
14
|
+
{
|
15
|
+
using LibNftIdSet for LibNftIdSet.Set;
|
16
|
+
|
17
|
+
event LogRiskSetPolicyLinked(RiskId riskId, NftId policyNftId);
|
18
|
+
event LogRiskSetPolicyUnlinked(RiskId riskId, NftId policyNftId);
|
19
|
+
|
20
|
+
event LogRiskSetRiskAdded(NftId productNftId, RiskId riskId);
|
21
|
+
event LogRiskSetRiskActive(NftId poolNftId, RiskId riskId);
|
22
|
+
event LogRiskSetRiskPaused(NftId poolNftId, RiskId riskId);
|
23
|
+
event LogRiskSetRiskArchived(NftId poolNftId, RiskId riskId);
|
24
|
+
|
25
|
+
error ErrorRiskSetRiskLocked(RiskId riskId, NftId policyNftId);
|
26
|
+
error ErrorRiskSetRiskUnknown(RiskId riskId);
|
27
|
+
error ErrorRiskSetRiskNotRegistered(RiskId riskId);
|
28
|
+
|
29
|
+
mapping(RiskId riskId => LibNftIdSet.Set policies) internal _activePolicies;
|
30
|
+
|
31
|
+
/// @dev links a policy to its bundle
|
32
|
+
function linkPolicy(NftId productNftId, RiskId riskId, NftId policyNftId) external restricted() {
|
33
|
+
|
34
|
+
// ensure risk is active (in active set) and registered with this instance
|
35
|
+
if (!_isActive(productNftId, riskId.toKey32())) {
|
36
|
+
revert ErrorRiskSetRiskLocked(riskId, policyNftId);
|
37
|
+
}
|
38
|
+
|
39
|
+
_activePolicies[riskId].add(policyNftId);
|
40
|
+
emit LogRiskSetPolicyLinked(riskId, policyNftId);
|
41
|
+
}
|
42
|
+
|
43
|
+
/// @dev Unlinks a policy from its risk.
|
44
|
+
function unlinkPolicy(NftId productNftId, RiskId riskId, NftId policyNftId) external restricted() {
|
45
|
+
|
46
|
+
// ensure risk is registered with this instance
|
47
|
+
if (!_contains(productNftId, riskId.toKey32())) {
|
48
|
+
revert ErrorRiskSetRiskUnknown(riskId);
|
49
|
+
}
|
50
|
+
|
51
|
+
_activePolicies[riskId].remove(policyNftId);
|
52
|
+
emit LogRiskSetPolicyUnlinked(riskId, policyNftId);
|
53
|
+
}
|
54
|
+
|
55
|
+
/// @dev add a new risk to a product registered with this instance
|
56
|
+
// the corresponding product is fetched via instance reader
|
57
|
+
function add(RiskId riskId) external restricted() {
|
58
|
+
NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
|
59
|
+
|
60
|
+
// ensure product is registered with instance
|
61
|
+
if(productNftId.eqz()) {
|
62
|
+
revert ErrorRiskSetRiskNotRegistered(riskId);
|
63
|
+
}
|
64
|
+
|
65
|
+
_add(productNftId, riskId.toKey32());
|
66
|
+
emit LogRiskSetRiskAdded(productNftId, riskId);
|
67
|
+
}
|
68
|
+
|
69
|
+
/// @dev Applications linked to active risks may be underwritten
|
70
|
+
function activate(RiskId riskId) external restricted() {
|
71
|
+
NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
|
72
|
+
_activate(productNftId, riskId.toKey32());
|
73
|
+
emit LogRiskSetRiskActive(productNftId, riskId);
|
74
|
+
}
|
75
|
+
|
76
|
+
/// @dev Applications linked to paused/archived risks may not be underwritten
|
77
|
+
function pause(RiskId riskId) external restricted() {
|
78
|
+
NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
|
79
|
+
_deactivate(productNftId, riskId.toKey32());
|
80
|
+
emit LogRiskSetRiskPaused(productNftId, riskId);
|
81
|
+
}
|
82
|
+
|
83
|
+
function checkRisk(NftId productNftId, RiskId riskId)
|
84
|
+
public
|
85
|
+
view
|
86
|
+
returns (bool exists, bool active)
|
87
|
+
{
|
88
|
+
Key32 riskKey32 = riskId.toKey32();
|
89
|
+
exists = _contains(productNftId, riskKey32);
|
90
|
+
|
91
|
+
if (exists) {
|
92
|
+
active = _isActive(productNftId, riskKey32);
|
93
|
+
}
|
94
|
+
}
|
95
|
+
|
96
|
+
function risks(NftId productNftId) external view returns(uint256) {
|
97
|
+
return _objects(productNftId);
|
98
|
+
}
|
99
|
+
|
100
|
+
function getRiskId(NftId productNftId, uint256 idx) external view returns(RiskId riskId) {
|
101
|
+
return RiskIdLib.toRiskId(_getObject(productNftId, idx).toKeyId());
|
102
|
+
}
|
103
|
+
|
104
|
+
function activeRisks(NftId productNftId) external view returns(uint256) {
|
105
|
+
return _activeObjs(productNftId);
|
106
|
+
}
|
107
|
+
|
108
|
+
function getActiveRiskId(NftId productNftId, uint256 idx) external view returns(RiskId riskId) {
|
109
|
+
return RiskIdLib.toRiskId(_getActiveObject(productNftId, idx).toKeyId());
|
110
|
+
}
|
111
|
+
|
112
|
+
function linkedPolicies(RiskId riskId) external view returns(uint256) {
|
113
|
+
return _activePolicies[riskId].size();
|
114
|
+
}
|
115
|
+
|
116
|
+
function getLinkedPolicyNftId(RiskId riskId, uint256 idx) external view returns(NftId policyNftId) {
|
117
|
+
return _activePolicies[riskId].getElementAt(idx);
|
118
|
+
}
|
119
|
+
}
|
@@ -11,9 +11,8 @@ contract ObjectCounter {
|
|
11
11
|
// TODO refactor risk id
|
12
12
|
// mapping(NftId productNftId => uint64 risks) private _riskCounter;
|
13
13
|
|
14
|
-
uint256 private _requestCounter;
|
14
|
+
uint256 private _requestCounter = 0;
|
15
15
|
|
16
|
-
// TODO introduce RequestId (uint64)
|
17
16
|
function _createNextRequestId() internal returns (RequestId requestId) {
|
18
17
|
_requestCounter++;
|
19
18
|
requestId = RequestIdLib.toRequestId(_requestCounter);
|
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
5
|
|
6
|
-
import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PREMIUM, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
|
6
|
+
import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PREMIUM, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL, FEE} from "../../type/ObjectType.sol";
|
7
7
|
import {ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../../type/StateId.sol";
|
8
8
|
import {Lifecycle} from "../../shared/Lifecycle.sol";
|
9
9
|
|
@@ -99,6 +99,7 @@ contract ObjectLifecycle is
|
|
99
99
|
// dummy lifecycle only
|
100
100
|
function _setUpProductLifecycle() private {
|
101
101
|
setInitialState(PRODUCT(), ACTIVE());
|
102
|
+
setInitialState(FEE(), ACTIVE());
|
102
103
|
}
|
103
104
|
|
104
105
|
// dummy lifecycles only
|
@@ -4,22 +4,21 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {Cloneable} from "./Cloneable.sol";
|
5
5
|
|
6
6
|
import {IInstance} from "../IInstance.sol";
|
7
|
-
import {
|
8
|
-
import {InstanceReader} from "../InstanceReader.sol";
|
9
|
-
import {IRegistry} from "../../registry/IRegistry.sol";
|
10
|
-
import {LibNftIdSet} from "../../type/NftIdSet.sol";
|
7
|
+
import {LibKey32Set} from "../../type/Key32Set.sol";
|
11
8
|
import {NftId} from "../../type/NftId.sol";
|
9
|
+
import {Key32} from "../../type/Key32.sol";
|
12
10
|
|
13
11
|
contract ObjectSet is
|
14
12
|
Cloneable
|
15
13
|
{
|
14
|
+
using LibKey32Set for LibKey32Set.Set;
|
16
15
|
|
17
16
|
event LogObjectSetInitialized(address instance);
|
18
17
|
|
19
18
|
error ErrorObjectSetNftIdInvalid(NftId instanceNftId);
|
20
19
|
|
21
|
-
mapping(NftId compnentNftId =>
|
22
|
-
mapping(NftId compnentNftId =>
|
20
|
+
mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _activeObjects;
|
21
|
+
mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _allObjects;
|
23
22
|
IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during ObjectSet initialization
|
24
23
|
|
25
24
|
/// @dev This initializer needs to be called from the instance itself.
|
@@ -37,43 +36,43 @@ contract ObjectSet is
|
|
37
36
|
return _instance;
|
38
37
|
}
|
39
38
|
|
40
|
-
function _add(NftId componentNftId,
|
41
|
-
|
42
|
-
|
39
|
+
function _add(NftId componentNftId, Key32 key) internal {
|
40
|
+
LibKey32Set.Set storage allSet = _allObjects[componentNftId];
|
41
|
+
LibKey32Set.Set storage activeSet = _activeObjects[componentNftId];
|
43
42
|
|
44
|
-
|
45
|
-
|
43
|
+
allSet.add(key);
|
44
|
+
activeSet.add(key);
|
46
45
|
}
|
47
46
|
|
48
|
-
function _activate(NftId componentNftId,
|
49
|
-
|
47
|
+
function _activate(NftId componentNftId, Key32 key) internal {
|
48
|
+
_activeObjects[componentNftId].add(key);
|
50
49
|
}
|
51
50
|
|
52
|
-
function _deactivate(NftId componentNftId,
|
53
|
-
|
51
|
+
function _deactivate(NftId componentNftId, Key32 key) internal {
|
52
|
+
_activeObjects[componentNftId].remove(key);
|
54
53
|
}
|
55
54
|
|
56
55
|
function _objects(NftId componentNftId) internal view returns (uint256) {
|
57
|
-
return
|
56
|
+
return _allObjects[componentNftId].size();
|
58
57
|
}
|
59
58
|
|
60
|
-
function _contains(NftId componentNftId,
|
61
|
-
return
|
59
|
+
function _contains(NftId componentNftId, Key32 key) internal view returns (bool) {
|
60
|
+
return _allObjects[componentNftId].contains(key);
|
62
61
|
}
|
63
62
|
|
64
|
-
function _getObject(NftId componentNftId, uint256 idx) internal view returns (
|
65
|
-
return
|
63
|
+
function _getObject(NftId componentNftId, uint256 idx) internal view returns (Key32) {
|
64
|
+
return _allObjects[componentNftId].getElementAt(idx);
|
66
65
|
}
|
67
66
|
|
68
67
|
function _activeObjs(NftId componentNftId) internal view returns (uint256) {
|
69
|
-
return
|
68
|
+
return _activeObjects[componentNftId].size();
|
70
69
|
}
|
71
70
|
|
72
|
-
function _isActive(NftId componentNftId,
|
73
|
-
return
|
71
|
+
function _isActive(NftId componentNftId, Key32 key) internal view returns (bool) {
|
72
|
+
return _activeObjects[componentNftId].contains(key);
|
74
73
|
}
|
75
74
|
|
76
|
-
function _getActiveObject(NftId componentNftId, uint256 idx) internal view returns (
|
77
|
-
return
|
75
|
+
function _getActiveObject(NftId componentNftId, uint256 idx) internal view returns (Key32) {
|
76
|
+
return _activeObjects[componentNftId].getElementAt(idx);
|
78
77
|
}
|
79
78
|
}
|
@@ -6,7 +6,6 @@ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IER
|
|
6
6
|
import {Amount} from "../../type/Amount.sol";
|
7
7
|
import {Fee} from "../../type/Fee.sol";
|
8
8
|
import {NftId} from "../../type/NftId.sol";
|
9
|
-
import {RoleId} from "../../type/RoleId.sol";
|
10
9
|
import {TokenHandler} from "../../shared/TokenHandler.sol";
|
11
10
|
import {UFixed} from "../../type/UFixed.sol";
|
12
11
|
|
@@ -14,16 +13,21 @@ interface IComponents {
|
|
14
13
|
|
15
14
|
struct ComponentInfo {
|
16
15
|
string name; // component name (needs to be unique per instance)
|
17
|
-
NftId productNftId;
|
18
16
|
IERC20Metadata token;
|
19
17
|
TokenHandler tokenHandler;
|
20
|
-
address wallet;
|
21
18
|
bytes data; // will hold component type specific additional info (eg encoded pool info)
|
22
19
|
}
|
23
20
|
|
24
21
|
struct ProductInfo {
|
25
|
-
|
26
|
-
|
22
|
+
bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
|
23
|
+
bool isInterceptingPolicyTransfers; // custom logic for policy nft transfers
|
24
|
+
bool hasDistribution; // flag to indicate if distribution is enabled
|
25
|
+
uint8 expectedNumberOfOracles; // expected number of oracles
|
26
|
+
uint8 numberOfOracles; // actual number of oracles
|
27
|
+
NftId poolNftId; // mandatory
|
28
|
+
NftId distributionNftId; // 0..1 (optional)
|
29
|
+
NftId [] oracleNftId; // 0..n (optional)
|
30
|
+
// TODO: remove those fields
|
27
31
|
Fee productFee; // product fee on net premium
|
28
32
|
Fee processingFee; // product fee on payout amounts
|
29
33
|
Fee distributionFee; // distribution fee for sales that do not include commissions
|
@@ -33,11 +37,20 @@ interface IComponents {
|
|
33
37
|
Fee performanceFee; // pool fee on profits from capital investors
|
34
38
|
}
|
35
39
|
|
40
|
+
struct FeeInfo {
|
41
|
+
Fee productFee; // product fee on net premium
|
42
|
+
Fee processingFee; // product fee on payout amounts
|
43
|
+
Fee distributionFee; // distribution fee for sales that do not include commissions
|
44
|
+
Fee minDistributionOwnerFee; // min fee required by distribution owner (not including commissions for distributors)
|
45
|
+
Fee poolFee; // pool fee on net premium
|
46
|
+
Fee stakingFee; // pool fee on staked capital from investor
|
47
|
+
Fee performanceFee; // pool fee on profits from capital investors
|
48
|
+
}
|
36
49
|
|
37
50
|
struct PoolInfo {
|
38
51
|
Amount maxBalanceAmount; // max balance amount allowed for pool
|
39
|
-
|
40
|
-
bool
|
52
|
+
bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
|
53
|
+
bool isProcessingConfirmedClaims; // custom logic for claims confirmation
|
41
54
|
bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
|
42
55
|
bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
|
43
56
|
UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
|
@@ -43,6 +43,7 @@ interface IPolicy {
|
|
43
43
|
|
44
44
|
/// @dev policy data for the full policy lifecycle
|
45
45
|
struct PolicyInfo {
|
46
|
+
// application data, no changes after applying for a policy
|
46
47
|
NftId productNftId;
|
47
48
|
NftId bundleNftId;
|
48
49
|
ReferralId referralId;
|
@@ -50,8 +51,8 @@ interface IPolicy {
|
|
50
51
|
Amount sumInsuredAmount;
|
51
52
|
Amount premiumAmount; // expected premium at application time
|
52
53
|
Seconds lifetime;
|
53
|
-
// policy application data, no changes after applying for a policy
|
54
54
|
bytes applicationData;
|
55
|
+
// policy data that may change during the lifecycle
|
55
56
|
bytes processData;
|
56
57
|
uint16 claimsCount;
|
57
58
|
uint16 openClaimsCount;
|
@@ -66,8 +67,8 @@ interface IPolicy {
|
|
66
67
|
struct ClaimInfo {
|
67
68
|
Amount claimAmount;
|
68
69
|
Amount paidAmount;
|
69
|
-
|
70
|
-
|
70
|
+
uint24 payoutsCount;
|
71
|
+
uint24 openPayoutsCount;
|
71
72
|
bytes submissionData; // use case specific claim submission data, no changes after submitting the claim
|
72
73
|
bytes processData; // use case specific data that may include information supporting confirm or decline
|
73
74
|
Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
|
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IService} from "../shared/IService.sol";
|
5
5
|
import {NftId} from "../type/NftId.sol";
|
6
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
6
7
|
import {RequestId} from "../type/RequestId.sol";
|
7
8
|
import {StateId} from "../type/StateId.sol";
|
8
9
|
import {Timestamp} from "../type/Timestamp.sol";
|
@@ -17,7 +18,7 @@ interface IOracleService is IService {
|
|
17
18
|
event LogOracleServiceRequestCancelled(RequestId requestId, NftId requesterNftId);
|
18
19
|
|
19
20
|
// create request
|
20
|
-
error
|
21
|
+
error ErrorOracleServiceProductMismatch(ObjectType callerObjectType, NftId productNft, NftId oracleParentNftId);
|
21
22
|
error ErrorOracleServiceExpiryInThePast(Timestamp blockTimestamp, Timestamp expiryAt);
|
22
23
|
error ErrorOracleServiceCallbackMethodNameEmpty();
|
23
24
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {COMPONENT, ORACLE} from "../type/ObjectType.sol";
|
5
|
+
import {COMPONENT, PRODUCT, ORACLE} from "../type/ObjectType.sol";
|
6
6
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
7
7
|
import {IComponentService} from "../shared/IComponentService.sol";
|
8
8
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
@@ -27,15 +27,6 @@ abstract contract Oracle is
|
|
27
27
|
}
|
28
28
|
|
29
29
|
|
30
|
-
function register()
|
31
|
-
external
|
32
|
-
virtual
|
33
|
-
onlyOwner()
|
34
|
-
{
|
35
|
-
_getOracleStorage()._componentService.registerOracle();
|
36
|
-
}
|
37
|
-
|
38
|
-
|
39
30
|
function request(
|
40
31
|
RequestId requestId,
|
41
32
|
NftId requesterId,
|
@@ -86,12 +77,11 @@ abstract contract Oracle is
|
|
86
77
|
|
87
78
|
function _initializeOracle(
|
88
79
|
address registry,
|
89
|
-
NftId
|
80
|
+
NftId productNftId,
|
90
81
|
IAuthorization authorization,
|
91
82
|
address initialOwner,
|
92
83
|
string memory name,
|
93
84
|
address token,
|
94
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
95
85
|
bytes memory componentData // component specifidc data
|
96
86
|
)
|
97
87
|
internal
|
@@ -100,19 +90,18 @@ abstract contract Oracle is
|
|
100
90
|
{
|
101
91
|
_initializeInstanceLinkedComponent(
|
102
92
|
registry,
|
103
|
-
|
93
|
+
productNftId,
|
104
94
|
name,
|
105
95
|
token,
|
106
96
|
ORACLE(),
|
107
97
|
authorization,
|
108
98
|
true,
|
109
99
|
initialOwner,
|
110
|
-
registryData,
|
111
100
|
componentData);
|
112
101
|
|
113
102
|
OracleStorage storage $ = _getOracleStorage();
|
114
|
-
$._oracleService = IOracleService(_getServiceAddress(ORACLE()));
|
115
103
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
104
|
+
$._oracleService = IOracleService(_getServiceAddress(ORACLE()));
|
116
105
|
|
117
106
|
_registerInterface(type(IOracleComponent).interfaceId);
|
118
107
|
}
|