@etherisc/gif-next 0.0.2-adb0ad8-584 → 0.0.2-ae6744f-037
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 +27 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
- 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 +2 -2
- 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/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +53 -163
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +6 -68
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +121 -82
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +72 -48
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +6 -50
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +23 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +51 -148
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +49 -17
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +106 -192
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +17 -17
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +79 -121
- 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 +31 -117
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +168 -155
- 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 +403 -205
- 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 +64 -18
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +24 -17
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +96 -29
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +103 -72
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +40 -27
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +303 -75
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +71 -48
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +46 -22
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +59 -69
- 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 +2 -2
- 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 +20 -130
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- 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 +6 -50
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +6 -68
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +84 -60
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +66 -22
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +6 -83
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +49 -17
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +101 -206
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +58 -70
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -57
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +6 -89
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +77 -75
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +6 -107
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +154 -160
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -33
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +58 -23
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +42 -22
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +11 -68
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +74 -66
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +67 -47
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +34 -7
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +38 -19
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +11 -50
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +132 -121
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +70 -42
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +50 -34
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +56 -32
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +11 -68
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +34 -18
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +40 -16
- 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 +24 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +62 -38
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +107 -94
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +32 -16
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +39 -15
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +12 -12
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +6 -54
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +256 -116
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +78 -42
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +402 -6
- 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 +6 -36
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +146 -14
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +6 -50
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- 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 +6 -68
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
- 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/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 +24 -72
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +3 -3
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +80 -152
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +50 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +36 -20
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +43 -19
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +13 -13
- 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 +3 -3
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +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 +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +43 -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/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 +3 -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 +18 -2
- 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 +21 -2
- package/contracts/authorization/ReleaseAccessManager.sol +1 -1
- package/contracts/distribution/BasicDistribution.sol +6 -6
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +32 -30
- package/contracts/distribution/DistributionService.sol +18 -19
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/FirePool.sol +25 -10
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -0
- package/contracts/examples/fire/FireProduct.sol +29 -11
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +33 -2
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +22 -21
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +38 -34
- package/contracts/instance/IInstance.sol +7 -2
- package/contracts/instance/IInstanceService.sol +7 -9
- package/contracts/instance/Instance.sol +16 -9
- package/contracts/instance/InstanceAdmin.sol +41 -30
- package/contracts/instance/InstanceAuthorizationV3.sol +33 -9
- package/contracts/instance/InstanceReader.sol +89 -3
- package/contracts/instance/InstanceService.sol +39 -58
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectSet.sol +24 -25
- package/contracts/instance/module/IComponents.sol +1 -2
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +1 -0
- package/contracts/oracle/OracleService.sol +87 -69
- package/contracts/pool/BasicPool.sol +24 -3
- package/contracts/pool/BasicPoolAuthorization.sol +12 -1
- package/contracts/pool/BundleService.sol +14 -84
- package/contracts/pool/IBundleService.sol +2 -23
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +12 -26
- package/contracts/pool/Pool.sol +112 -102
- package/contracts/pool/PoolService.sol +156 -88
- package/contracts/product/ApplicationService.sol +12 -12
- package/contracts/product/BasicProduct.sol +7 -11
- package/contracts/product/BasicProductAuthorization.sol +1 -2
- package/contracts/product/ClaimService.sol +3 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IPolicyService.sol +17 -7
- package/contracts/product/PolicyService.sol +237 -195
- package/contracts/product/Product.sol +12 -40
- package/contracts/product/RiskService.sol +14 -3
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +2 -0
- package/contracts/registry/Registry.sol +9 -1
- package/contracts/registry/RegistryAdmin.sol +22 -13
- package/contracts/registry/ReleaseRegistry.sol +5 -20
- package/contracts/registry/ServiceAuthorizationV3.sol +13 -31
- package/contracts/shared/Component.sol +44 -90
- package/contracts/shared/ComponentService.sol +160 -36
- package/contracts/shared/ComponentVerifyingService.sol +15 -13
- package/contracts/shared/ContractLib.sol +196 -10
- package/contracts/shared/IComponent.sol +1 -13
- package/contracts/shared/IComponentService.sol +19 -5
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/InstanceLinkedComponent.sol +2 -18
- package/contracts/shared/Registerable.sol +0 -2
- package/contracts/shared/RegistryLinked.sol +6 -12
- package/contracts/shared/TokenHandler.sol +316 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/Staking.sol +39 -21
- package/contracts/staking/StakingService.sol +41 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +2 -0
- package/contracts/type/RiskId.sol +18 -6
- package/contracts/type/UFixed.sol +9 -119
- package/package.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
@@ -2,10 +2,11 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {
|
5
|
-
PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE
|
5
|
+
PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, RISK
|
6
6
|
} from "../../contracts/type/ObjectType.sol";
|
7
7
|
|
8
|
-
import {BundleSet} from "../instance/BundleSet.sol";
|
8
|
+
import {BundleSet} from "../instance/BundleSet.sol";
|
9
|
+
import {RiskSet} from "../instance/RiskSet.sol";
|
9
10
|
import {IAccess} from "../authorization/IAccess.sol";
|
10
11
|
import {Instance} from "../instance/Instance.sol";
|
11
12
|
import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
@@ -23,6 +24,7 @@ contract InstanceAuthorizationV3
|
|
23
24
|
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
24
25
|
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
25
26
|
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
27
|
+
string public constant RISK_SET_TARGET_NAME = "RiskSet";
|
26
28
|
|
27
29
|
constructor() Authorization(INSTANCE_TARGET_NAME) {}
|
28
30
|
|
@@ -49,6 +51,7 @@ contract InstanceAuthorizationV3
|
|
49
51
|
_addTarget(INSTANCE_STORE_TARGET_NAME);
|
50
52
|
_addTarget(INSTANCE_ADMIN_TARGET_NAME);
|
51
53
|
_addTarget(BUNDLE_SET_TARGET_NAME);
|
54
|
+
_addTarget(RISK_SET_TARGET_NAME);
|
52
55
|
|
53
56
|
// service targets relevant to instance
|
54
57
|
_addServiceTargetWithRole(INSTANCE());
|
@@ -57,7 +60,7 @@ contract InstanceAuthorizationV3
|
|
57
60
|
_addServiceTargetWithRole(ORACLE());
|
58
61
|
_addServiceTargetWithRole(POOL());
|
59
62
|
_addServiceTargetWithRole(BUNDLE());
|
60
|
-
_addServiceTargetWithRole(
|
63
|
+
_addServiceTargetWithRole(RISK());
|
61
64
|
_addServiceTargetWithRole(APPLICATION());
|
62
65
|
_addServiceTargetWithRole(POLICY());
|
63
66
|
_addServiceTargetWithRole(CLAIM());
|
@@ -72,7 +75,7 @@ contract InstanceAuthorizationV3
|
|
72
75
|
_setupInstanceAdminAuthorization();
|
73
76
|
_setupInstanceStoreAuthorization();
|
74
77
|
_setupBundleSetAuthorization();
|
75
|
-
|
78
|
+
_setUpRiskSetAuthorization();
|
76
79
|
}
|
77
80
|
|
78
81
|
|
@@ -83,11 +86,31 @@ contract InstanceAuthorizationV3
|
|
83
86
|
|
84
87
|
// authorize bundle service role
|
85
88
|
functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
|
86
|
-
_authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
|
87
|
-
_authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
|
88
89
|
_authorize(functions, BundleSet.add.selector, "add");
|
89
90
|
_authorize(functions, BundleSet.lock.selector, "lock");
|
90
91
|
_authorize(functions, BundleSet.unlock.selector, "unlock");
|
92
|
+
|
93
|
+
// authorize bundle service role
|
94
|
+
functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(POLICY()));
|
95
|
+
_authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
|
96
|
+
_authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
|
97
|
+
}
|
98
|
+
|
99
|
+
function _setUpRiskSetAuthorization()
|
100
|
+
internal
|
101
|
+
{
|
102
|
+
IAccess.FunctionInfo[] storage functions;
|
103
|
+
|
104
|
+
// authorize risk service role
|
105
|
+
functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(RISK()));
|
106
|
+
_authorize(functions, RiskSet.add.selector, "add");
|
107
|
+
_authorize(functions, RiskSet.pause.selector, "pause");
|
108
|
+
_authorize(functions, RiskSet.activate.selector, "activate");
|
109
|
+
|
110
|
+
// authorize policy service role
|
111
|
+
functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(POLICY()));
|
112
|
+
_authorize(functions, RiskSet.linkPolicy.selector, "linkPolicy");
|
113
|
+
_authorize(functions, RiskSet.unlinkPolicy.selector, "unlinkPolicy");
|
91
114
|
}
|
92
115
|
|
93
116
|
|
@@ -111,8 +134,9 @@ contract InstanceAuthorizationV3
|
|
111
134
|
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _toTargetRoleId(INSTANCE()));
|
112
135
|
_authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
|
113
136
|
|
114
|
-
// authorize
|
115
|
-
|
137
|
+
// authorize component service role
|
138
|
+
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
|
139
|
+
_authorize(functions, InstanceAdmin.setTargetLocked.selector, "setTargetLocked");
|
116
140
|
}
|
117
141
|
|
118
142
|
|
@@ -164,7 +188,7 @@ contract InstanceAuthorizationV3
|
|
164
188
|
_authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
|
165
189
|
|
166
190
|
// authorize product service role
|
167
|
-
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(
|
191
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(RISK()));
|
168
192
|
_authorize(functions, InstanceStore.createRisk.selector, "createRisk");
|
169
193
|
_authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
|
170
194
|
_authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
|
@@ -27,6 +27,7 @@ import {TimestampLib} from "../type/Timestamp.sol";
|
|
27
27
|
|
28
28
|
import {InstanceStore} from "./InstanceStore.sol";
|
29
29
|
import {BundleSet} from "./BundleSet.sol";
|
30
|
+
import {RiskSet} from "./RiskSet.sol";
|
30
31
|
|
31
32
|
|
32
33
|
contract InstanceReader {
|
@@ -39,6 +40,7 @@ contract InstanceReader {
|
|
39
40
|
IInstance internal _instance;
|
40
41
|
InstanceStore internal _store;
|
41
42
|
BundleSet internal _bundleSet;
|
43
|
+
RiskSet internal _riskSet;
|
42
44
|
|
43
45
|
/// @dev This initializer needs to be called from the instance itself.
|
44
46
|
function initialize() public {
|
@@ -50,7 +52,9 @@ contract InstanceReader {
|
|
50
52
|
}
|
51
53
|
|
52
54
|
/// @dev This initializer needs to be called from the instance itself.
|
53
|
-
function initializeWithInstance(address instanceAddress)
|
55
|
+
function initializeWithInstance(address instanceAddress)
|
56
|
+
public
|
57
|
+
{
|
54
58
|
if(_initialized) {
|
55
59
|
revert ErrorInstanceReaderAlreadyInitialized();
|
56
60
|
}
|
@@ -59,6 +63,7 @@ contract InstanceReader {
|
|
59
63
|
_instance = IInstance(instanceAddress);
|
60
64
|
_store = _instance.getInstanceStore();
|
61
65
|
_bundleSet = _instance.getBundleSet();
|
66
|
+
_riskSet = _instance.getRiskSet();
|
62
67
|
}
|
63
68
|
|
64
69
|
|
@@ -102,6 +107,14 @@ contract InstanceReader {
|
|
102
107
|
return _store.getState(toPremiumKey(policyNftId));
|
103
108
|
}
|
104
109
|
|
110
|
+
function bundles(NftId poolNftId)
|
111
|
+
public
|
112
|
+
view
|
113
|
+
returns (uint256 bundles)
|
114
|
+
{
|
115
|
+
return _bundleSet.bundles(poolNftId);
|
116
|
+
}
|
117
|
+
|
105
118
|
function activeBundles(NftId poolNftId)
|
106
119
|
public
|
107
120
|
view
|
@@ -118,6 +131,14 @@ contract InstanceReader {
|
|
118
131
|
return _bundleSet.getActiveBundleNftId(poolNftId, idx);
|
119
132
|
}
|
120
133
|
|
134
|
+
function getBundleNftId(NftId poolNftId, uint256 idx)
|
135
|
+
public
|
136
|
+
view
|
137
|
+
returns (NftId bundleNftId)
|
138
|
+
{
|
139
|
+
return _bundleSet.getBundleNftId(poolNftId, idx);
|
140
|
+
}
|
141
|
+
|
121
142
|
function getBundleState(NftId bundleNftId)
|
122
143
|
public
|
123
144
|
view
|
@@ -226,6 +247,38 @@ contract InstanceReader {
|
|
226
247
|
return _store.getState(payoutId.toKey32(policyNftId));
|
227
248
|
}
|
228
249
|
|
250
|
+
function risks(NftId productNftId)
|
251
|
+
public
|
252
|
+
view
|
253
|
+
returns (uint256 activeRisks)
|
254
|
+
{
|
255
|
+
return _riskSet.risks(productNftId);
|
256
|
+
}
|
257
|
+
|
258
|
+
function getRiskId(NftId productNftId, uint256 idx)
|
259
|
+
public
|
260
|
+
view
|
261
|
+
returns (RiskId riskId)
|
262
|
+
{
|
263
|
+
return _riskSet.getRiskId(productNftId, idx);
|
264
|
+
}
|
265
|
+
|
266
|
+
function activeRisks(NftId productNftId)
|
267
|
+
public
|
268
|
+
view
|
269
|
+
returns (uint256 activeRisks)
|
270
|
+
{
|
271
|
+
return _riskSet.activeRisks(productNftId);
|
272
|
+
}
|
273
|
+
|
274
|
+
function getActiveRiskId(NftId productNftId, uint256 idx)
|
275
|
+
public
|
276
|
+
view
|
277
|
+
returns (RiskId riskId)
|
278
|
+
{
|
279
|
+
return _riskSet.getActiveRiskId(productNftId, idx);
|
280
|
+
}
|
281
|
+
|
229
282
|
function getRiskInfo(RiskId riskId)
|
230
283
|
public
|
231
284
|
view
|
@@ -237,6 +290,31 @@ contract InstanceReader {
|
|
237
290
|
}
|
238
291
|
}
|
239
292
|
|
293
|
+
function getRiskState(RiskId riskId)
|
294
|
+
public
|
295
|
+
view
|
296
|
+
returns (StateId stateId)
|
297
|
+
{
|
298
|
+
bytes memory data = _store.getData(riskId.toKey32());
|
299
|
+
return _store.getState(riskId.toKey32());
|
300
|
+
}
|
301
|
+
|
302
|
+
function policiesForRisk(RiskId riskId)
|
303
|
+
public
|
304
|
+
view
|
305
|
+
returns (uint256 linkedPolicies)
|
306
|
+
{
|
307
|
+
return _riskSet.linkedPolicies(riskId);
|
308
|
+
}
|
309
|
+
|
310
|
+
function getPolicyNftIdForRisk(RiskId riskId, uint256 idx)
|
311
|
+
public
|
312
|
+
view
|
313
|
+
returns (NftId linkedPolicyNftId)
|
314
|
+
{
|
315
|
+
return _riskSet.getLinkedPolicyNftId(riskId, idx);
|
316
|
+
}
|
317
|
+
|
240
318
|
function getWallet(NftId componentNftId)
|
241
319
|
public
|
242
320
|
view
|
@@ -246,7 +324,7 @@ contract InstanceReader {
|
|
246
324
|
|
247
325
|
if (data.length > 0) {
|
248
326
|
IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
|
249
|
-
return info.
|
327
|
+
return info.tokenHandler.getWallet();
|
250
328
|
}
|
251
329
|
}
|
252
330
|
|
@@ -440,7 +518,7 @@ contract InstanceReader {
|
|
440
518
|
}
|
441
519
|
|
442
520
|
|
443
|
-
function
|
521
|
+
function isLocked(address target) public view returns (bool) {
|
444
522
|
return _instance.getInstanceAdmin().isTargetLocked(target);
|
445
523
|
}
|
446
524
|
|
@@ -485,6 +563,14 @@ contract InstanceReader {
|
|
485
563
|
return _store;
|
486
564
|
}
|
487
565
|
|
566
|
+
function getBundleSet() external view returns (BundleSet bundleSet) {
|
567
|
+
return _bundleSet;
|
568
|
+
}
|
569
|
+
|
570
|
+
function getRiskSet() external view returns (RiskSet riskSet) {
|
571
|
+
return _riskSet;
|
572
|
+
}
|
573
|
+
|
488
574
|
function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
|
489
575
|
return UFixedLib.toUFixed(value, exp);
|
490
576
|
}
|
@@ -2,32 +2,25 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
|
-
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
5
|
|
7
6
|
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
8
7
|
import {Amount} from "../type/Amount.sol";
|
9
8
|
import {BundleSet} from "./BundleSet.sol";
|
9
|
+
import {RiskSet} from "./RiskSet.sol";
|
10
10
|
import {ChainNft} from "../registry/ChainNft.sol";
|
11
11
|
import {NftId} from "../type/NftId.sol";
|
12
12
|
import {RoleId} from "../type/RoleId.sol";
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {ADMIN_ROLE} from "../type/RoleId.sol";
|
16
|
-
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
13
|
+
import {UFixed} from "../type/UFixed.sol";
|
14
|
+
import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
17
15
|
|
18
16
|
import {Service} from "../shared/Service.sol";
|
19
|
-
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
20
|
-
import {IService} from "../shared/IService.sol";
|
21
|
-
|
22
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
23
|
-
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
24
|
-
import {IProductComponent} from "../product/IProductComponent.sol";
|
25
17
|
|
26
18
|
import {IRegistry} from "../registry/IRegistry.sol";
|
27
19
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
28
20
|
import {IStakingService} from "../staking/IStakingService.sol";
|
29
21
|
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
30
22
|
|
23
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
31
24
|
import {Instance} from "./Instance.sol";
|
32
25
|
import {IInstance} from "./IInstance.sol";
|
33
26
|
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
@@ -35,7 +28,7 @@ import {IInstanceService} from "./IInstanceService.sol";
|
|
35
28
|
import {InstanceReader} from "./InstanceReader.sol";
|
36
29
|
import {InstanceStore} from "./InstanceStore.sol";
|
37
30
|
import {Seconds} from "../type/Seconds.sol";
|
38
|
-
import {VersionPart
|
31
|
+
import {VersionPart} from "../type/Version.sol";
|
39
32
|
|
40
33
|
|
41
34
|
contract InstanceService is
|
@@ -48,12 +41,14 @@ contract InstanceService is
|
|
48
41
|
|
49
42
|
IRegistryService internal _registryService;
|
50
43
|
IStakingService internal _stakingService;
|
44
|
+
IComponentService internal _componentService;
|
51
45
|
|
52
46
|
address internal _masterAccessManager;
|
53
47
|
address internal _masterInstanceAdmin;
|
54
48
|
address internal _masterInstance;
|
55
49
|
address internal _masterInstanceReader;
|
56
50
|
address internal _masterInstanceBundleSet;
|
51
|
+
address internal _masterInstanceRiskSet;
|
57
52
|
address internal _masterInstanceStore;
|
58
53
|
|
59
54
|
|
@@ -96,8 +91,8 @@ contract InstanceService is
|
|
96
91
|
function createInstance()
|
97
92
|
external
|
98
93
|
returns (
|
99
|
-
|
100
|
-
NftId
|
94
|
+
IInstance instance,
|
95
|
+
NftId instanceNftId
|
101
96
|
)
|
102
97
|
{
|
103
98
|
// tx sender will become instance owner
|
@@ -105,24 +100,24 @@ contract InstanceService is
|
|
105
100
|
|
106
101
|
// create instance admin and instance
|
107
102
|
InstanceAdmin instanceAdmin = _createInstanceAdmin();
|
108
|
-
|
103
|
+
instance = _createInstance(instanceAdmin, instanceOwner);
|
109
104
|
|
110
105
|
// register cloned instance with registry
|
111
|
-
|
112
|
-
|
106
|
+
instanceNftId = _registryService.registerInstance(
|
107
|
+
instance, instanceOwner).nftId;
|
113
108
|
|
114
109
|
// register cloned instance as staking target
|
115
110
|
_stakingService.createInstanceTarget(
|
116
|
-
|
111
|
+
instanceNftId,
|
117
112
|
TargetManagerLib.getDefaultLockingPeriod(),
|
118
113
|
TargetManagerLib.getDefaultRewardRate());
|
119
114
|
|
120
115
|
// MUST be set after instance is set up and registered
|
121
|
-
instanceAdmin.initializeInstanceAuthorization(address(
|
116
|
+
instanceAdmin.initializeInstanceAuthorization(address(instance));
|
122
117
|
|
123
118
|
emit LogInstanceCloned(
|
124
|
-
|
125
|
-
address(
|
119
|
+
instanceNftId,
|
120
|
+
address(instance));
|
126
121
|
}
|
127
122
|
|
128
123
|
|
@@ -175,33 +170,6 @@ contract InstanceService is
|
|
175
170
|
dipAmount);
|
176
171
|
}
|
177
172
|
|
178
|
-
|
179
|
-
function setComponentLocked(bool locked)
|
180
|
-
external
|
181
|
-
virtual
|
182
|
-
onlyComponent()
|
183
|
-
{
|
184
|
-
// checks
|
185
|
-
address componentAddress = msg.sender;
|
186
|
-
|
187
|
-
if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
|
188
|
-
revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
|
189
|
-
}
|
190
|
-
|
191
|
-
IRegistry registry = getRegistry();
|
192
|
-
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
193
|
-
|
194
|
-
IInstance instance = IInstance(
|
195
|
-
registry.getObjectAddress(instanceNftId));
|
196
|
-
|
197
|
-
// no revert in case already locked
|
198
|
-
// TODO refactor/implement
|
199
|
-
// instance.getInstanceAdmin().setTargetLockedByService(
|
200
|
-
// componentAddress,
|
201
|
-
// locked);
|
202
|
-
}
|
203
|
-
|
204
|
-
|
205
173
|
function getMasterInstanceReader() external view returns (address) {
|
206
174
|
return _masterInstanceReader;
|
207
175
|
}
|
@@ -214,7 +182,7 @@ contract InstanceService is
|
|
214
182
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
215
183
|
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
216
184
|
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
217
|
-
|
185
|
+
if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
|
218
186
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
219
187
|
|
220
188
|
IInstance instance = IInstance(instanceAddress);
|
@@ -223,28 +191,34 @@ contract InstanceService is
|
|
223
191
|
address instanceAdminAddress = address(instanceAdmin);
|
224
192
|
InstanceReader instanceReader = instance.getInstanceReader();
|
225
193
|
address instanceReaderAddress = address(instanceReader);
|
226
|
-
BundleSet
|
227
|
-
address
|
194
|
+
BundleSet bundleSet = instance.getBundleSet();
|
195
|
+
address bundleSetAddress = address(bundleSet);
|
196
|
+
RiskSet riskSet = instance.getRiskSet();
|
197
|
+
address riskSetAddress = address(riskSet);
|
228
198
|
InstanceStore instanceStore = instance.getInstanceStore();
|
229
199
|
address instanceStoreAddress = address(instanceStore);
|
230
200
|
|
231
201
|
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
232
202
|
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
233
203
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
234
|
-
if(
|
204
|
+
if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
205
|
+
if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
|
235
206
|
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
236
207
|
|
237
208
|
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
238
|
-
if(
|
209
|
+
if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
210
|
+
if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
|
239
211
|
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
240
|
-
if(
|
212
|
+
if(bundleSet.getInstance() != instance) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
|
213
|
+
if(riskSet.getInstance() != instance) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
|
241
214
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
242
215
|
|
243
216
|
_masterAccessManager = accessManagerAddress;
|
244
217
|
_masterInstanceAdmin = instanceAdminAddress;
|
245
218
|
_masterInstance = instanceAddress;
|
246
219
|
_masterInstanceReader = instanceReaderAddress;
|
247
|
-
_masterInstanceBundleSet =
|
220
|
+
_masterInstanceBundleSet = bundleSetAddress;
|
221
|
+
_masterInstanceRiskSet = riskSetAddress;
|
248
222
|
_masterInstanceStore = instanceStoreAddress;
|
249
223
|
|
250
224
|
IInstance masterInstance = IInstance(_masterInstance);
|
@@ -265,6 +239,7 @@ contract InstanceService is
|
|
265
239
|
|
266
240
|
function upgradeInstanceReader(NftId instanceNftId)
|
267
241
|
external
|
242
|
+
nonReentrant()
|
268
243
|
onlyInstanceOwner(instanceNftId)
|
269
244
|
onlyNftOfType(instanceNftId, INSTANCE())
|
270
245
|
{
|
@@ -293,9 +268,11 @@ contract InstanceService is
|
|
293
268
|
clonedAccessManager.initialize(
|
294
269
|
address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
|
295
270
|
|
271
|
+
address authorization = address(
|
272
|
+
InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
|
296
273
|
clonedInstanceAdmin.initialize(
|
297
274
|
clonedAccessManager,
|
298
|
-
|
275
|
+
authorization);
|
299
276
|
}
|
300
277
|
|
301
278
|
|
@@ -307,21 +284,24 @@ contract InstanceService is
|
|
307
284
|
)
|
308
285
|
internal
|
309
286
|
virtual
|
310
|
-
returns (
|
287
|
+
returns (IInstance)
|
311
288
|
{
|
312
289
|
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
313
290
|
BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
|
291
|
+
RiskSet clonedRiskSet = RiskSet(Clones.clone(_masterInstanceRiskSet));
|
314
292
|
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
315
293
|
|
316
294
|
// clone instance
|
317
|
-
clonedInstance = Instance(Clones.clone(_masterInstance));
|
295
|
+
Instance clonedInstance = Instance(Clones.clone(_masterInstance));
|
318
296
|
clonedInstance.initialize(
|
319
297
|
instanceAdmin,
|
320
298
|
clonedInstanceStore,
|
321
299
|
clonedBundleSet,
|
300
|
+
clonedRiskSet,
|
322
301
|
clonedInstanceReader,
|
323
302
|
getRegistry(),
|
324
303
|
instanceOwner);
|
304
|
+
return clonedInstance;
|
325
305
|
}
|
326
306
|
|
327
307
|
|
@@ -372,6 +352,7 @@ contract InstanceService is
|
|
372
352
|
|
373
353
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
374
354
|
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
355
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
375
356
|
|
376
357
|
_registerInterface(type(IInstanceService).interfaceId);
|
377
358
|
}
|
@@ -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);
|