@etherisc/gif-next 0.0.2-cfc7167-648 → 0.0.2-cff7366-494
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 +32 -8
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +105 -65
- 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 -367
- 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 -291
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +227 -290
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -117
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +89 -129
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +101 -31
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1415 -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 +1965 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1163 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2267 -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 +141 -141
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +197 -139
- 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 +726 -133
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +118 -260
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +99 -87
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +337 -138
- 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 +111 -319
- 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 +77 -117
- 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 +87 -279
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +147 -191
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +119 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +106 -298
- 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 +146 -307
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -119
- 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 +98 -149
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +283 -180
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +106 -309
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +382 -407
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +123 -99
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +119 -165
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +93 -85
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +149 -295
- 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 +282 -229
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +132 -108
- 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 +161 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +179 -35
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +136 -130
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +281 -323
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +123 -119
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +215 -309
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +117 -117
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +147 -293
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +310 -34
- 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 +516 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +296 -143
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +94 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +91 -75
- 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 +131 -223
- 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 +76 -239
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +492 -335
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +143 -117
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +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 +66 -77
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +467 -33
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +77 -117
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +87 -279
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +47 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +674 -49
- 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 +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +111 -114
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +63 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +193 -368
- 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 +117 -110
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +95 -79
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +169 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +54 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +32 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/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/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +15 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +83 -58
- package/contracts/authorization/Authorization.sol +111 -40
- 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 +4 -3
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +12 -23
- package/contracts/distribution/DistributionService.sol +97 -66
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +13 -8
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +431 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +65 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
- package/contracts/instance/BundleSet.sol +38 -34
- package/contracts/instance/IInstance.sol +16 -31
- package/contracts/instance/IInstanceService.sol +7 -29
- package/contracts/instance/Instance.sol +44 -59
- package/contracts/instance/InstanceAdmin.sol +58 -39
- package/contracts/instance/InstanceAuthorizationV3.sol +43 -29
- package/contracts/instance/InstanceReader.sol +190 -19
- package/contracts/instance/InstanceService.sol +61 -137
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/ObjectLifecycle.sol +7 -1
- package/contracts/instance/base/ObjectSet.sol +24 -25
- package/contracts/instance/module/IComponents.sol +10 -6
- package/contracts/instance/module/IPolicy.sol +25 -24
- 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 +6 -16
- package/contracts/oracle/OracleService.sol +112 -81
- 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 +69 -83
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +3 -14
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +48 -42
- package/contracts/pool/Pool.sol +144 -127
- package/contracts/pool/PoolService.sol +277 -189
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +34 -25
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +9 -12
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +312 -115
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +30 -7
- package/contracts/product/IPolicyService.sol +31 -25
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +23 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +399 -261
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +49 -53
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +101 -87
- package/contracts/product/{ProductService.sol → RiskService.sol} +21 -13
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +68 -38
- package/contracts/registry/IRegistry.sol +57 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +350 -201
- package/contracts/registry/RegistryAdmin.sol +140 -54
- package/contracts/registry/RegistryService.sol +35 -46
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +204 -204
- package/contracts/registry/ServiceAuthorizationV3.sol +23 -47
- package/contracts/shared/Component.sol +60 -119
- package/contracts/shared/ComponentService.sol +393 -167
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +224 -0
- package/contracts/shared/IComponent.sol +10 -14
- package/contracts/shared/IComponentService.sol +44 -18
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -28
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +71 -46
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +27 -7
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +19 -11
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +20 -18
- package/contracts/shared/TokenHandler.sol +357 -30
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +11 -5
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +39 -50
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +58 -25
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +18 -11
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +30 -4
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/UFixed.sol +4 -0
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +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/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.dbg.json +0 -4
- package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.json +0 -42
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/InitializableCustom.sol +0 -177
- package/contracts/shared/TokenTransferLib.sol +0 -60
@@ -1,19 +1,18 @@
|
|
1
1
|
// SPDX-License-Identifier: UNLICENSED
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
|
5
4
|
|
6
5
|
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
7
6
|
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
8
|
-
import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
|
9
7
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
10
|
-
import {
|
8
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
9
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
11
10
|
import {IRegistry} from "../registry/IRegistry.sol";
|
12
11
|
import {IInstance} from "./IInstance.sol";
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
12
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
13
|
+
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
16
14
|
import {Str, StrLib} from "../type/String.sol";
|
15
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
17
16
|
import {VersionPart} from "../type/Version.sol";
|
18
17
|
|
19
18
|
|
@@ -24,6 +23,7 @@ contract InstanceAdmin is
|
|
24
23
|
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
25
24
|
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
26
25
|
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
26
|
+
string public constant RISK_SET_TAGET_NAME = "RiskSet";
|
27
27
|
|
28
28
|
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
|
29
29
|
|
@@ -32,20 +32,20 @@ contract InstanceAdmin is
|
|
32
32
|
error ErrorInstanceAdminReleaseMismatch();
|
33
33
|
error ErrorInstanceAdminExpectedTargetMissing(string targetName);
|
34
34
|
|
35
|
-
IInstance _instance;
|
35
|
+
IInstance internal _instance;
|
36
36
|
IRegistry internal _registry;
|
37
|
-
uint64 _idNext;
|
37
|
+
uint64 internal _idNext;
|
38
38
|
|
39
|
-
|
39
|
+
IAuthorization internal _instanceAuthorization;
|
40
40
|
|
41
41
|
/// @dev Only used for master instance admin.
|
42
42
|
/// Contracts created via constructor come with disabled initializers.
|
43
43
|
constructor(
|
44
|
-
|
44
|
+
address instanceAuthorization
|
45
45
|
)
|
46
46
|
AccessAdmin()
|
47
47
|
{
|
48
|
-
_instanceAuthorization = instanceAuthorization;
|
48
|
+
_instanceAuthorization = IAuthorization(instanceAuthorization);
|
49
49
|
}
|
50
50
|
|
51
51
|
/// @dev Initializes this instance admin with the provided instances authorization specification.
|
@@ -54,7 +54,7 @@ contract InstanceAdmin is
|
|
54
54
|
/// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
|
55
55
|
function initialize(
|
56
56
|
AccessManagerCloneable accessManager,
|
57
|
-
|
57
|
+
address instanceAuthorization
|
58
58
|
)
|
59
59
|
external
|
60
60
|
initializer()
|
@@ -66,7 +66,7 @@ contract InstanceAdmin is
|
|
66
66
|
_createAdminAndPublicRoles();
|
67
67
|
|
68
68
|
// store instance authorization specification
|
69
|
-
_instanceAuthorization =
|
69
|
+
_instanceAuthorization = IAuthorization(instanceAuthorization);
|
70
70
|
}
|
71
71
|
|
72
72
|
function _checkTargetIsReadyForAuthorization(address target)
|
@@ -94,7 +94,7 @@ contract InstanceAdmin is
|
|
94
94
|
_registry = _instance.getRegistry();
|
95
95
|
|
96
96
|
// check matching releases
|
97
|
-
if (_instanceAuthorization.getRelease() != _instance.
|
97
|
+
if (_instanceAuthorization.getRelease() != _instance.getRelease()) {
|
98
98
|
revert ErrorInstanceAdminReleaseMismatch();
|
99
99
|
}
|
100
100
|
|
@@ -102,50 +102,56 @@ contract InstanceAdmin is
|
|
102
102
|
_createRoles(_instanceAuthorization);
|
103
103
|
_createModuleTargetsWithRoles();
|
104
104
|
_createTargetAuthorizations(_instanceAuthorization);
|
105
|
-
|
106
|
-
// grant component owner roles to instance owner
|
107
|
-
_grantComponentOwnerRoles();
|
108
105
|
}
|
109
106
|
|
110
107
|
|
111
108
|
/// @dev Initializes the authorization for the specified component.
|
112
109
|
/// Important: The component MUST be registered.
|
113
110
|
function initializeComponentAuthorization(
|
114
|
-
|
115
|
-
IAuthorization authorization
|
111
|
+
IInstanceLinkedComponent component
|
116
112
|
)
|
117
113
|
external
|
118
114
|
{
|
119
|
-
_checkTargetIsReadyForAuthorization(
|
115
|
+
_checkTargetIsReadyForAuthorization(address(component));
|
116
|
+
|
117
|
+
// get authorization specification
|
118
|
+
IAuthorization authorization = component.getAuthorization();
|
120
119
|
|
120
|
+
// create roles
|
121
121
|
_createRoles(authorization);
|
122
122
|
|
123
123
|
// create component target
|
124
124
|
_createTarget(
|
125
|
-
|
125
|
+
address(component),
|
126
126
|
authorization.getTargetName(),
|
127
127
|
true, // checkAuthority
|
128
128
|
false); // custom
|
129
129
|
|
130
|
+
_createTarget(
|
131
|
+
address(component.getTokenHandler()),
|
132
|
+
string(abi.encodePacked(authorization.getTargetName(), "TH")),
|
133
|
+
true,
|
134
|
+
false);
|
135
|
+
|
136
|
+
FunctionInfo[] memory functions = new FunctionInfo[](3);
|
137
|
+
functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
|
138
|
+
functions[1] = toFunction(TokenHandler.collectTokensToThreeRecipients.selector, "collectTokensToThreeRecipients");
|
139
|
+
functions[2] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
|
140
|
+
|
141
|
+
// FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
|
142
|
+
_authorizeTargetFunctions(
|
143
|
+
address(component.getTokenHandler()),
|
144
|
+
getPublicRole(),
|
145
|
+
functions);
|
146
|
+
|
130
147
|
_grantRoleToAccount(
|
131
148
|
authorization.getTargetRole(
|
132
|
-
authorization.
|
133
|
-
|
149
|
+
authorization.getMainTarget()),
|
150
|
+
address(component));
|
134
151
|
|
135
152
|
_createTargetAuthorizations(authorization);
|
136
153
|
}
|
137
154
|
|
138
|
-
|
139
|
-
function _grantComponentOwnerRoles()
|
140
|
-
internal
|
141
|
-
{
|
142
|
-
address instanceOwner = _registry.ownerOf(_instance.getNftId());
|
143
|
-
_grantRoleToAccount(DISTRIBUTION_OWNER_ROLE(), instanceOwner);
|
144
|
-
_grantRoleToAccount(ORACLE_OWNER_ROLE(), instanceOwner);
|
145
|
-
_grantRoleToAccount(POOL_OWNER_ROLE(), instanceOwner);
|
146
|
-
_grantRoleToAccount(PRODUCT_OWNER_ROLE(), instanceOwner);
|
147
|
-
}
|
148
|
-
|
149
155
|
/// @dev Creates a custom role
|
150
156
|
// TODO implement
|
151
157
|
// function createRole()
|
@@ -165,11 +171,20 @@ contract InstanceAdmin is
|
|
165
171
|
_grantRoleToAccount(roleId, account);
|
166
172
|
}
|
167
173
|
|
174
|
+
function setTargetLocked(address target, bool locked)
|
175
|
+
external
|
176
|
+
restricted()
|
177
|
+
{
|
178
|
+
_setTargetClosed(target, locked);
|
179
|
+
}
|
180
|
+
|
181
|
+
|
182
|
+
|
168
183
|
/// @dev Returns the instance authorization specification used to set up this instance admin.
|
169
184
|
function getInstanceAuthorization()
|
170
185
|
external
|
171
186
|
view
|
172
|
-
returns (
|
187
|
+
returns (IAuthorization instanceAuthorizaion)
|
173
188
|
{
|
174
189
|
return _instanceAuthorization;
|
175
190
|
}
|
@@ -184,9 +199,12 @@ contract InstanceAdmin is
|
|
184
199
|
|
185
200
|
for(uint256 i = 0; i < roles.length; i++) {
|
186
201
|
roleId = roles[i];
|
187
|
-
|
188
|
-
|
189
|
-
|
202
|
+
|
203
|
+
if (!roleExists(roleId)) {
|
204
|
+
_createRole(
|
205
|
+
roleId,
|
206
|
+
authorization.getRoleInfo(roleId));
|
207
|
+
}
|
190
208
|
}
|
191
209
|
}
|
192
210
|
|
@@ -231,7 +249,7 @@ contract InstanceAdmin is
|
|
231
249
|
_createTarget(
|
232
250
|
target,
|
233
251
|
targetName,
|
234
|
-
false, // check authority TODO check normal targets, don't check service targets (they share authority with
|
252
|
+
false, // check authority TODO check normal targets, don't check service targets (they share authority with release admin)
|
235
253
|
false);
|
236
254
|
|
237
255
|
// assign target role if defined
|
@@ -249,6 +267,7 @@ contract InstanceAdmin is
|
|
249
267
|
_checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
|
250
268
|
_checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
|
251
269
|
_checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
|
270
|
+
_checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TAGET_NAME);
|
252
271
|
|
253
272
|
// create targets for services that need to access the module targets
|
254
273
|
ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
|
@@ -2,49 +2,38 @@
|
|
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 {
|
9
|
-
|
10
|
-
} from "../../contracts/type/RoleId.sol";
|
11
|
-
|
12
|
-
import {BundleSet} from "../instance/BundleSet.sol";
|
8
|
+
import {BundleSet} from "../instance/BundleSet.sol";
|
9
|
+
import {RiskSet} from "../instance/RiskSet.sol";
|
13
10
|
import {IAccess} from "../authorization/IAccess.sol";
|
14
11
|
import {Instance} from "../instance/Instance.sol";
|
15
12
|
import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
16
13
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
17
|
-
import {
|
18
|
-
import {RoleId} from "../type/RoleId.sol";
|
19
|
-
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
14
|
+
import {Authorization} from "../authorization/Authorization.sol";
|
20
15
|
|
21
16
|
|
22
17
|
contract InstanceAuthorizationV3
|
23
|
-
is
|
18
|
+
is Authorization
|
24
19
|
{
|
25
20
|
|
21
|
+
string public constant INSTANCE_ROLE_NAME = "InstanceRole";
|
22
|
+
|
26
23
|
string public constant INSTANCE_TARGET_NAME = "Instance";
|
27
24
|
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
28
25
|
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
29
26
|
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
27
|
+
string public constant RISK_SET_TARGET_NAME = "RiskSet";
|
30
28
|
|
31
|
-
|
32
|
-
string public constant DISTRIBUTION_OWNER_ROLE_NAME = "DistributionOwnerRole";
|
33
|
-
string public constant ORACLE_OWNER_ROLE_NAME = "OracleOwnerRole";
|
34
|
-
string public constant POOL_OWNER_ROLE_NAME = "PoolOwnerRole";
|
35
|
-
string public constant PRODUCT_OWNER_ROLE_NAME = "ProductOwnerRole";
|
36
|
-
|
37
|
-
constructor() ModuleAuthorization(INSTANCE_TARGET_NAME) {}
|
29
|
+
constructor() Authorization(INSTANCE_TARGET_NAME) {}
|
38
30
|
|
39
31
|
|
40
32
|
function _setupRoles()
|
41
33
|
internal
|
42
34
|
override
|
43
35
|
{
|
44
|
-
|
45
|
-
_addGifRole(ORACLE_OWNER_ROLE(), ORACLE_OWNER_ROLE_NAME);
|
46
|
-
_addGifRole(POOL_OWNER_ROLE(), POOL_OWNER_ROLE_NAME);
|
47
|
-
_addGifRole(PRODUCT_OWNER_ROLE(), PRODUCT_OWNER_ROLE_NAME);
|
36
|
+
// empty implementation
|
48
37
|
}
|
49
38
|
|
50
39
|
|
@@ -55,13 +44,14 @@ contract InstanceAuthorizationV3
|
|
55
44
|
// instance target
|
56
45
|
_addTargetWithRole(
|
57
46
|
INSTANCE_TARGET_NAME,
|
58
|
-
|
47
|
+
_toTargetRoleId(INSTANCE()),
|
59
48
|
INSTANCE_ROLE_NAME);
|
60
49
|
|
61
50
|
// instance supporting targets
|
62
51
|
_addTarget(INSTANCE_STORE_TARGET_NAME);
|
63
52
|
_addTarget(INSTANCE_ADMIN_TARGET_NAME);
|
64
53
|
_addTarget(BUNDLE_SET_TARGET_NAME);
|
54
|
+
_addTarget(RISK_SET_TARGET_NAME);
|
65
55
|
|
66
56
|
// service targets relevant to instance
|
67
57
|
_addServiceTargetWithRole(INSTANCE());
|
@@ -70,7 +60,7 @@ contract InstanceAuthorizationV3
|
|
70
60
|
_addServiceTargetWithRole(ORACLE());
|
71
61
|
_addServiceTargetWithRole(POOL());
|
72
62
|
_addServiceTargetWithRole(BUNDLE());
|
73
|
-
_addServiceTargetWithRole(
|
63
|
+
_addServiceTargetWithRole(RISK());
|
74
64
|
_addServiceTargetWithRole(APPLICATION());
|
75
65
|
_addServiceTargetWithRole(POLICY());
|
76
66
|
_addServiceTargetWithRole(CLAIM());
|
@@ -85,6 +75,7 @@ contract InstanceAuthorizationV3
|
|
85
75
|
_setupInstanceAdminAuthorization();
|
86
76
|
_setupInstanceStoreAuthorization();
|
87
77
|
_setupBundleSetAuthorization();
|
78
|
+
_setUpRiskSetAuthorization();
|
88
79
|
}
|
89
80
|
|
90
81
|
|
@@ -95,11 +86,31 @@ contract InstanceAuthorizationV3
|
|
95
86
|
|
96
87
|
// authorize bundle service role
|
97
88
|
functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
|
98
|
-
_authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
|
99
|
-
_authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
|
100
89
|
_authorize(functions, BundleSet.add.selector, "add");
|
101
90
|
_authorize(functions, BundleSet.lock.selector, "lock");
|
102
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");
|
103
114
|
}
|
104
115
|
|
105
116
|
|
@@ -120,11 +131,12 @@ contract InstanceAuthorizationV3
|
|
120
131
|
IAccess.FunctionInfo[] storage functions;
|
121
132
|
|
122
133
|
// authorize instance role
|
123
|
-
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME,
|
134
|
+
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _toTargetRoleId(INSTANCE()));
|
124
135
|
_authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
|
125
136
|
|
126
|
-
// authorize
|
127
|
-
|
137
|
+
// authorize component service role
|
138
|
+
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
|
139
|
+
_authorize(functions, InstanceAdmin.setTargetLocked.selector, "setTargetLocked");
|
128
140
|
}
|
129
141
|
|
130
142
|
|
@@ -176,7 +188,7 @@ contract InstanceAuthorizationV3
|
|
176
188
|
_authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
|
177
189
|
|
178
190
|
// authorize product service role
|
179
|
-
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(
|
191
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(RISK()));
|
180
192
|
_authorize(functions, InstanceStore.createRisk.selector, "createRisk");
|
181
193
|
_authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
|
182
194
|
_authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
|
@@ -191,6 +203,8 @@ contract InstanceAuthorizationV3
|
|
191
203
|
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POLICY()));
|
192
204
|
_authorize(functions, InstanceStore.updatePolicy.selector, "updatePolicy");
|
193
205
|
_authorize(functions, InstanceStore.updatePolicyState.selector, "updatePolicyState");
|
206
|
+
_authorize(functions, InstanceStore.createPremium.selector, "createPremium");
|
207
|
+
_authorize(functions, InstanceStore.updatePremiumState.selector, "updatePremiumState");
|
194
208
|
|
195
209
|
// authorize claim service role
|
196
210
|
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(CLAIM()));
|
@@ -2,12 +2,12 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {ClaimId} from "../type/ClaimId.sol";
|
5
|
+
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
6
6
|
import {DistributorType} from "../type/DistributorType.sol";
|
7
7
|
import {Key32} from "../type/Key32.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
|
-
import {COMPONENT, DISTRIBUTOR, DISTRIBUTION, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
|
10
|
-
import {PayoutId} from "../type/PayoutId.sol";
|
9
|
+
import {COMPONENT, DISTRIBUTOR, DISTRIBUTION, PREMIUM, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
|
10
|
+
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
11
11
|
import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
|
12
12
|
import {RequestId} from "../type/RequestId.sol";
|
13
13
|
import {RiskId} from "../type/RiskId.sol";
|
@@ -26,6 +26,8 @@ import {IRisk} from "../instance/module/IRisk.sol";
|
|
26
26
|
import {TimestampLib} from "../type/Timestamp.sol";
|
27
27
|
|
28
28
|
import {InstanceStore} from "./InstanceStore.sol";
|
29
|
+
import {BundleSet} from "./BundleSet.sol";
|
30
|
+
import {RiskSet} from "./RiskSet.sol";
|
29
31
|
|
30
32
|
|
31
33
|
contract InstanceReader {
|
@@ -37,6 +39,8 @@ contract InstanceReader {
|
|
37
39
|
|
38
40
|
IInstance internal _instance;
|
39
41
|
InstanceStore internal _store;
|
42
|
+
BundleSet internal _bundleSet;
|
43
|
+
RiskSet internal _riskSet;
|
40
44
|
|
41
45
|
/// @dev This initializer needs to be called from the instance itself.
|
42
46
|
function initialize() public {
|
@@ -56,6 +60,8 @@ contract InstanceReader {
|
|
56
60
|
_initialized = true;
|
57
61
|
_instance = IInstance(instanceAddress);
|
58
62
|
_store = _instance.getInstanceStore();
|
63
|
+
_bundleSet = _instance.getBundleSet();
|
64
|
+
_riskSet = _instance.getRiskSet();
|
59
65
|
}
|
60
66
|
|
61
67
|
|
@@ -80,6 +86,57 @@ contract InstanceReader {
|
|
80
86
|
return _store.getState(toPolicyKey(policyNftId));
|
81
87
|
}
|
82
88
|
|
89
|
+
function getPremiumInfo(NftId policyNftId)
|
90
|
+
public
|
91
|
+
view
|
92
|
+
returns (IPolicy.PremiumInfo memory info)
|
93
|
+
{
|
94
|
+
bytes memory data = _store.getData(toPremiumKey(policyNftId));
|
95
|
+
if (data.length > 0) {
|
96
|
+
return abi.decode(data, (IPolicy.PremiumInfo));
|
97
|
+
}
|
98
|
+
}
|
99
|
+
|
100
|
+
function getPremiumInfoState(NftId policyNftId)
|
101
|
+
public
|
102
|
+
view
|
103
|
+
returns (StateId state)
|
104
|
+
{
|
105
|
+
return _store.getState(toPremiumKey(policyNftId));
|
106
|
+
}
|
107
|
+
|
108
|
+
function bundles(NftId poolNftId)
|
109
|
+
public
|
110
|
+
view
|
111
|
+
returns (uint256 bundles)
|
112
|
+
{
|
113
|
+
return _bundleSet.bundles(poolNftId);
|
114
|
+
}
|
115
|
+
|
116
|
+
function activeBundles(NftId poolNftId)
|
117
|
+
public
|
118
|
+
view
|
119
|
+
returns (uint256 bundles)
|
120
|
+
{
|
121
|
+
return _bundleSet.activeBundles(poolNftId);
|
122
|
+
}
|
123
|
+
|
124
|
+
function getActiveBundleNftId(NftId poolNftId, uint256 idx)
|
125
|
+
public
|
126
|
+
view
|
127
|
+
returns (NftId bundleNftId)
|
128
|
+
{
|
129
|
+
return _bundleSet.getActiveBundleNftId(poolNftId, idx);
|
130
|
+
}
|
131
|
+
|
132
|
+
function getBundleNftId(NftId poolNftId, uint256 idx)
|
133
|
+
public
|
134
|
+
view
|
135
|
+
returns (NftId bundleNftId)
|
136
|
+
{
|
137
|
+
return _bundleSet.getBundleNftId(poolNftId, idx);
|
138
|
+
}
|
139
|
+
|
83
140
|
function getBundleState(NftId bundleNftId)
|
84
141
|
public
|
85
142
|
view
|
@@ -88,14 +145,8 @@ contract InstanceReader {
|
|
88
145
|
return _store.getState(toBundleKey(bundleNftId));
|
89
146
|
}
|
90
147
|
|
91
|
-
/// @dev
|
92
|
-
|
93
|
-
/// - policy exists
|
94
|
-
/// - has been activated
|
95
|
-
/// - is not yet closed
|
96
|
-
/// - has no open claims
|
97
|
-
/// - claim amount matches sum insured amount or is expired
|
98
|
-
function policyIsCloseable(NftId policyNftId)
|
148
|
+
/// @dev Returns true iff policy is active.
|
149
|
+
function policyIsActive(NftId policyNftId)
|
99
150
|
public
|
100
151
|
view
|
101
152
|
returns (bool isCloseable)
|
@@ -104,17 +155,27 @@ contract InstanceReader {
|
|
104
155
|
|
105
156
|
if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
|
106
157
|
if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
|
107
|
-
if (info.
|
108
|
-
if (info.
|
158
|
+
if (info.activatedAt > TimestampLib.blockTimestamp()) { return false; } // not yet active
|
159
|
+
if (info.expiredAt <= TimestampLib.blockTimestamp()) { return false; } // already expired
|
109
160
|
|
110
|
-
|
111
|
-
|
161
|
+
return true;
|
162
|
+
}
|
163
|
+
|
164
|
+
function claims(NftId policyNftId)
|
165
|
+
public
|
166
|
+
view
|
167
|
+
returns (uint16 claims)
|
168
|
+
{
|
169
|
+
return getPolicyInfo(policyNftId).claimsCount;
|
170
|
+
}
|
112
171
|
|
113
|
-
// not closeable: not yet expired
|
114
|
-
if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
|
115
172
|
|
116
|
-
|
117
|
-
|
173
|
+
function getClaimId(uint idx)
|
174
|
+
public
|
175
|
+
view
|
176
|
+
returns (ClaimId claimId)
|
177
|
+
{
|
178
|
+
return ClaimIdLib.toClaimId(idx + 1);
|
118
179
|
}
|
119
180
|
|
120
181
|
function getClaimInfo(NftId policyNftId, ClaimId claimId)
|
@@ -128,6 +189,7 @@ contract InstanceReader {
|
|
128
189
|
}
|
129
190
|
}
|
130
191
|
|
192
|
+
|
131
193
|
function getClaimState(NftId policyNftId, ClaimId claimId)
|
132
194
|
public
|
133
195
|
view
|
@@ -136,6 +198,34 @@ contract InstanceReader {
|
|
136
198
|
return _store.getState(claimId.toKey32(policyNftId));
|
137
199
|
}
|
138
200
|
|
201
|
+
|
202
|
+
function payouts(NftId policyNftId, ClaimId claimId)
|
203
|
+
public
|
204
|
+
view
|
205
|
+
returns (uint24 payouts)
|
206
|
+
{
|
207
|
+
return getClaimInfo(policyNftId, claimId).payoutsCount;
|
208
|
+
}
|
209
|
+
|
210
|
+
|
211
|
+
function getPayoutId(ClaimId claimId, uint24 idx)
|
212
|
+
public
|
213
|
+
view
|
214
|
+
returns (PayoutId payoutId)
|
215
|
+
{
|
216
|
+
return PayoutIdLib.toPayoutId(claimId, idx + 1);
|
217
|
+
}
|
218
|
+
|
219
|
+
|
220
|
+
function getRemainingClaimableAmount(NftId policyNftId)
|
221
|
+
public
|
222
|
+
view
|
223
|
+
returns (Amount remainingClaimableAmount)
|
224
|
+
{
|
225
|
+
IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
|
226
|
+
return info.sumInsuredAmount - info.claimAmount;
|
227
|
+
}
|
228
|
+
|
139
229
|
function getPayoutInfo(NftId policyNftId, PayoutId payoutId)
|
140
230
|
public
|
141
231
|
view
|
@@ -155,6 +245,38 @@ contract InstanceReader {
|
|
155
245
|
return _store.getState(payoutId.toKey32(policyNftId));
|
156
246
|
}
|
157
247
|
|
248
|
+
function risks(NftId productNftId)
|
249
|
+
public
|
250
|
+
view
|
251
|
+
returns (uint256 activeRisks)
|
252
|
+
{
|
253
|
+
return _riskSet.risks(productNftId);
|
254
|
+
}
|
255
|
+
|
256
|
+
function getRiskId(NftId productNftId, uint256 idx)
|
257
|
+
public
|
258
|
+
view
|
259
|
+
returns (RiskId riskId)
|
260
|
+
{
|
261
|
+
return _riskSet.getRiskId(productNftId, idx);
|
262
|
+
}
|
263
|
+
|
264
|
+
function activeRisks(NftId productNftId)
|
265
|
+
public
|
266
|
+
view
|
267
|
+
returns (uint256 activeRisks)
|
268
|
+
{
|
269
|
+
return _riskSet.activeRisks(productNftId);
|
270
|
+
}
|
271
|
+
|
272
|
+
function getActiveRiskId(NftId productNftId, uint256 idx)
|
273
|
+
public
|
274
|
+
view
|
275
|
+
returns (RiskId riskId)
|
276
|
+
{
|
277
|
+
return _riskSet.getActiveRiskId(productNftId, idx);
|
278
|
+
}
|
279
|
+
|
158
280
|
function getRiskInfo(RiskId riskId)
|
159
281
|
public
|
160
282
|
view
|
@@ -166,6 +288,44 @@ contract InstanceReader {
|
|
166
288
|
}
|
167
289
|
}
|
168
290
|
|
291
|
+
function getRiskState(RiskId riskId)
|
292
|
+
public
|
293
|
+
view
|
294
|
+
returns (StateId stateId)
|
295
|
+
{
|
296
|
+
bytes memory data = _store.getData(riskId.toKey32());
|
297
|
+
return _store.getState(riskId.toKey32());
|
298
|
+
}
|
299
|
+
|
300
|
+
function policiesForRisk(RiskId riskId)
|
301
|
+
public
|
302
|
+
view
|
303
|
+
returns (uint256 linkedPolicies)
|
304
|
+
{
|
305
|
+
return _riskSet.linkedPolicies(riskId);
|
306
|
+
}
|
307
|
+
|
308
|
+
function getPolicyNftIdForRisk(RiskId riskId, uint256 idx)
|
309
|
+
public
|
310
|
+
view
|
311
|
+
returns (NftId linkedPolicyNftId)
|
312
|
+
{
|
313
|
+
return _riskSet.getLinkedPolicyNftId(riskId, idx);
|
314
|
+
}
|
315
|
+
|
316
|
+
function getWallet(NftId componentNftId)
|
317
|
+
public
|
318
|
+
view
|
319
|
+
returns (address tokenHandler)
|
320
|
+
{
|
321
|
+
bytes memory data = _store.getData(toComponentKey(componentNftId));
|
322
|
+
|
323
|
+
if (data.length > 0) {
|
324
|
+
IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
|
325
|
+
return info.tokenHandler.getWallet();
|
326
|
+
}
|
327
|
+
}
|
328
|
+
|
169
329
|
function getTokenHandler(NftId componentNftId)
|
170
330
|
public
|
171
331
|
view
|
@@ -364,6 +524,9 @@ contract InstanceReader {
|
|
364
524
|
return policyNftId.toKey32(POLICY());
|
365
525
|
}
|
366
526
|
|
527
|
+
function toPremiumKey(NftId policyNftId) public pure returns (Key32) {
|
528
|
+
return policyNftId.toKey32(PREMIUM());
|
529
|
+
}
|
367
530
|
|
368
531
|
function toDistributorKey(NftId distributorNftId) public pure returns (Key32) {
|
369
532
|
return distributorNftId.toKey32(DISTRIBUTOR());
|
@@ -398,6 +561,14 @@ contract InstanceReader {
|
|
398
561
|
return _store;
|
399
562
|
}
|
400
563
|
|
564
|
+
function getBundleSet() external view returns (BundleSet bundleSet) {
|
565
|
+
return _bundleSet;
|
566
|
+
}
|
567
|
+
|
568
|
+
function getRiskSet() external view returns (RiskSet riskSet) {
|
569
|
+
return _riskSet;
|
570
|
+
}
|
571
|
+
|
401
572
|
function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
|
402
573
|
return UFixedLib.toUFixed(value, exp);
|
403
574
|
}
|