@etherisc/gif-next 0.0.2-d0b1ffb-653 → 0.0.2-d0faf15-906
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/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +103 -55
- 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/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- 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/IAccessAdmin.sol/IAccessAdmin.json +37 -5
- 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/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 +106 -186
- 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 +57 -89
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +166 -104
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +81 -51
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -58
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +50 -3
- 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 +102 -165
- 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 +258 -295
- 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 +137 -129
- 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 +90 -126
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +225 -162
- 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 +630 -317
- 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 +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +94 -47
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +77 -20
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +131 -56
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +240 -93
- 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 +478 -197
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +104 -74
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -27
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +410 -370
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -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 +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +74 -154
- 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 +44 -58
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +58 -90
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +112 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +69 -27
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +57 -104
- 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 +128 -226
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +60 -74
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +46 -60
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -97
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +104 -78
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -128
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +175 -174
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +64 -38
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +105 -63
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +163 -175
- 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 +251 -144
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +79 -57
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +143 -3
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +65 -22
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +150 -144
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +158 -140
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +73 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +99 -76
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -38
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +163 -175
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +88 -73
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +54 -24
- 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 +31 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- 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 +69 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +188 -213
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +42 -20
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
- 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 +310 -52
- 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 +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +57 -75
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +250 -421
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +71 -61
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
- 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/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +44 -44
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +134 -248
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +44 -58
- 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/IRegisterable.sol/IRegisterable.json +120 -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/IService.sol/IService.json +27 -3
- 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 +57 -89
- 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 +118 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
- 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 +62 -80
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +27 -3
- 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 +134 -173
- 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 +58 -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 +73 -50
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +46 -24
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -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 +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 +62 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
- 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/Timestamp.sol/TimestampLib.json +2 -2
- 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/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
- 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/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +136 -73
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/IAccessAdmin.sol +6 -3
- 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 +36 -33
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- 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 +38 -12
- 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 +40 -21
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +8 -8
- package/contracts/instance/IInstanceService.sol +9 -9
- package/contracts/instance/Instance.sol +20 -17
- package/contracts/instance/InstanceAdmin.sol +98 -49
- package/contracts/instance/InstanceAuthorizationV3.sol +45 -14
- package/contracts/instance/InstanceReader.sol +108 -7
- package/contracts/instance/InstanceService.sol +73 -79
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +4 -4
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +92 -73
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +24 -3
- package/contracts/pool/BasicPoolAuthorization.sol +12 -1
- package/contracts/pool/BundleService.sol +71 -107
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +2 -24
- 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 +194 -104
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +24 -16
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +9 -11
- package/contracts/product/BasicProductAuthorization.sol +1 -2
- package/contracts/product/ClaimService.sol +188 -71
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +13 -0
- package/contracts/product/IPolicyService.sol +17 -7
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/PolicyService.sol +248 -195
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +27 -20
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +47 -39
- package/contracts/product/RiskService.sol +78 -23
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +8 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +12 -3
- package/contracts/registry/RegistryAdmin.sol +121 -225
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +129 -119
- package/contracts/registry/ServiceAuthorizationV3.sol +88 -40
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +59 -98
- package/contracts/shared/ComponentService.sol +206 -241
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +15 -13
- package/contracts/shared/ContractLib.sol +223 -9
- package/contracts/shared/IComponent.sol +4 -17
- package/contracts/shared/IComponentService.sol +20 -24
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +2 -18
- package/contracts/shared/NftOwnable.sol +9 -5
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +44 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +8 -27
- 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 +62 -33
- package/contracts/staking/StakingService.sol +55 -9
- 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 +32 -18
- package/contracts/type/RiskId.sol +23 -6
- package/contracts/type/RoleId.sol +5 -2
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +9 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +3 -3
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
@@ -1,22 +1,19 @@
|
|
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
8
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
11
9
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
12
10
|
import {IRegistry} from "../registry/IRegistry.sol";
|
13
11
|
import {IInstance} from "./IInstance.sol";
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
12
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
13
|
+
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
17
14
|
import {Str, StrLib} from "../type/String.sol";
|
18
15
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
19
|
-
import {VersionPart} from "../type/Version.sol";
|
16
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
20
17
|
|
21
18
|
|
22
19
|
contract InstanceAdmin is
|
@@ -26,77 +23,86 @@ contract InstanceAdmin is
|
|
26
23
|
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
27
24
|
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
28
25
|
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
26
|
+
string public constant RISK_SET_TAGET_NAME = "RiskSet";
|
29
27
|
|
30
28
|
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
|
31
29
|
|
30
|
+
error ErrorInstanceAdminCallerNotInstanceOwner(address caller);
|
31
|
+
error ErrorInstanceAdminInstanceAlreadyLocked();
|
32
32
|
error ErrorInstanceAdminNotRegistered(address target);
|
33
33
|
error ErrorInstanceAdminAlreadyAuthorized(address target);
|
34
34
|
error ErrorInstanceAdminReleaseMismatch();
|
35
35
|
error ErrorInstanceAdminExpectedTargetMissing(string targetName);
|
36
36
|
|
37
|
-
IInstance _instance;
|
37
|
+
IInstance internal _instance;
|
38
38
|
IRegistry internal _registry;
|
39
|
-
uint64 _idNext;
|
39
|
+
uint64 internal _idNext;
|
40
40
|
|
41
|
-
IAuthorization _instanceAuthorization;
|
41
|
+
IAuthorization internal _instanceAuthorization;
|
42
|
+
|
43
|
+
|
44
|
+
modifier onlyInstanceOwner() {
|
45
|
+
if(msg.sender != _registry.ownerOf(address(_instance))) {
|
46
|
+
revert ErrorInstanceAdminCallerNotInstanceOwner(msg.sender);
|
47
|
+
}
|
48
|
+
_;
|
49
|
+
}
|
42
50
|
|
43
51
|
/// @dev Only used for master instance admin.
|
44
52
|
/// Contracts created via constructor come with disabled initializers.
|
45
53
|
constructor(
|
46
|
-
|
47
|
-
)
|
48
|
-
|
49
|
-
|
50
|
-
_instanceAuthorization = instanceAuthorization;
|
54
|
+
address instanceAuthorization
|
55
|
+
) {
|
56
|
+
initialize(new AccessManagerCloneable());
|
57
|
+
|
58
|
+
_instanceAuthorization = IAuthorization(instanceAuthorization);
|
59
|
+
|
60
|
+
_disableInitializers();
|
51
61
|
}
|
52
62
|
|
53
|
-
|
54
|
-
/// Internally the function creates an instance specific OpenZeppelin AccessManager that is used as the authority
|
55
|
-
/// for the inststance authorizatios.
|
56
|
-
/// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
|
63
|
+
|
57
64
|
function initialize(
|
58
|
-
AccessManagerCloneable
|
59
|
-
|
65
|
+
AccessManagerCloneable clonedAccessManager,
|
66
|
+
IRegistry registry,
|
67
|
+
VersionPart release
|
60
68
|
)
|
61
69
|
external
|
62
|
-
initializer()
|
70
|
+
initializer()
|
63
71
|
{
|
64
|
-
|
65
|
-
_initializeAuthority(address(accessManager));
|
72
|
+
__AccessAdmin_init(clonedAccessManager);
|
66
73
|
|
67
|
-
|
68
|
-
|
74
|
+
clonedAccessManager.completeSetup(
|
75
|
+
address(registry),
|
76
|
+
release);
|
69
77
|
|
70
|
-
|
71
|
-
_instanceAuthorization = IAuthorization(instanceAuthorization);
|
78
|
+
_registry = registry;
|
72
79
|
}
|
73
80
|
|
74
|
-
function _checkTargetIsReadyForAuthorization(address target)
|
75
|
-
internal
|
76
|
-
view
|
77
|
-
{
|
78
|
-
if (address(_registry) != address(0) && !_registry.isRegistered(target)) {
|
79
|
-
revert ErrorInstanceAdminNotRegistered(target);
|
80
|
-
}
|
81
|
-
|
82
|
-
if (targetExists(target)) {
|
83
|
-
revert ErrorInstanceAdminAlreadyAuthorized(target);
|
84
|
-
}
|
85
|
-
}
|
86
81
|
|
87
|
-
/// @dev Completes the initialization of this instance admin using the provided instance.
|
82
|
+
/// @dev Completes the initialization of this instance admin using the provided instance, registry and version.
|
83
|
+
/// Important: Initialization of instance admin is only complete after calling this function.
|
88
84
|
/// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
|
89
|
-
function
|
85
|
+
function completeSetup(
|
86
|
+
address instance,
|
87
|
+
address authorization
|
88
|
+
)
|
90
89
|
external
|
90
|
+
reinitializer(uint64(getRelease().toInt()))
|
91
|
+
onlyDeployer()
|
91
92
|
{
|
92
|
-
_checkTargetIsReadyForAuthorization(instanceAddress);
|
93
|
-
|
94
93
|
_idNext = CUSTOM_ROLE_ID_MIN;
|
95
|
-
_instance = IInstance(
|
96
|
-
|
94
|
+
_instance = IInstance(instance);
|
95
|
+
_instanceAuthorization = IAuthorization(authorization);
|
96
|
+
|
97
|
+
// AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
|
98
|
+
// accessManager.completeSetup(
|
99
|
+
// address(_registry),
|
100
|
+
// release);
|
101
|
+
|
102
|
+
_checkTargetIsReadyForAuthorization(instance);
|
97
103
|
|
98
104
|
// check matching releases
|
99
|
-
if (_instanceAuthorization.getRelease() !=
|
105
|
+
if (_instanceAuthorization.getRelease() != getRelease()) {
|
100
106
|
revert ErrorInstanceAdminReleaseMismatch();
|
101
107
|
}
|
102
108
|
|
@@ -114,10 +120,15 @@ contract InstanceAdmin is
|
|
114
120
|
)
|
115
121
|
external
|
116
122
|
{
|
123
|
+
// !!! TODO add caller restrictions?
|
124
|
+
|
117
125
|
_checkTargetIsReadyForAuthorization(address(component));
|
118
126
|
|
119
127
|
// get authorization specification
|
120
128
|
IAuthorization authorization = component.getAuthorization();
|
129
|
+
string memory targetName = authorization.getTargetName();
|
130
|
+
_checkTargetIsReadyForAuthorization(address(component));
|
131
|
+
|
121
132
|
|
122
133
|
// create roles
|
123
134
|
_createRoles(authorization);
|
@@ -125,13 +136,13 @@ contract InstanceAdmin is
|
|
125
136
|
// create component target
|
126
137
|
_createTarget(
|
127
138
|
address(component),
|
128
|
-
|
139
|
+
targetName,
|
129
140
|
true, // checkAuthority
|
130
141
|
false); // custom
|
131
142
|
|
132
143
|
_createTarget(
|
133
144
|
address(component.getTokenHandler()),
|
134
|
-
string(abi.encodePacked(
|
145
|
+
string(abi.encodePacked(targetName, "TH")),
|
135
146
|
true,
|
136
147
|
false);
|
137
148
|
|
@@ -173,6 +184,28 @@ contract InstanceAdmin is
|
|
173
184
|
_grantRoleToAccount(roleId, account);
|
174
185
|
}
|
175
186
|
|
187
|
+
|
188
|
+
function setInstanceLocked(bool locked)
|
189
|
+
external
|
190
|
+
onlyInstanceOwner()
|
191
|
+
{
|
192
|
+
AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
|
193
|
+
|
194
|
+
if(accessManager.isLocked() == locked) {
|
195
|
+
revert ErrorInstanceAdminInstanceAlreadyLocked();
|
196
|
+
}
|
197
|
+
accessManager.setLocked(locked);
|
198
|
+
}
|
199
|
+
|
200
|
+
function setTargetLocked(address target, bool locked)
|
201
|
+
external
|
202
|
+
restricted()
|
203
|
+
{
|
204
|
+
_setTargetClosed(target, locked);
|
205
|
+
}
|
206
|
+
|
207
|
+
|
208
|
+
|
176
209
|
/// @dev Returns the instance authorization specification used to set up this instance admin.
|
177
210
|
function getInstanceAuthorization()
|
178
211
|
external
|
@@ -182,6 +215,21 @@ contract InstanceAdmin is
|
|
182
215
|
return _instanceAuthorization;
|
183
216
|
}
|
184
217
|
|
218
|
+
// ------------------- Internal functions ------------------- //
|
219
|
+
|
220
|
+
function _checkTargetIsReadyForAuthorization(address target)
|
221
|
+
internal
|
222
|
+
view
|
223
|
+
{
|
224
|
+
if (!_registry.isRegistered(target)) {
|
225
|
+
revert ErrorInstanceAdminNotRegistered(target);
|
226
|
+
}
|
227
|
+
|
228
|
+
if (targetExists(target)) {
|
229
|
+
revert ErrorInstanceAdminAlreadyAuthorized(target);
|
230
|
+
}
|
231
|
+
}
|
232
|
+
|
185
233
|
|
186
234
|
function _createRoles(IAuthorization authorization)
|
187
235
|
internal
|
@@ -242,7 +290,7 @@ contract InstanceAdmin is
|
|
242
290
|
_createTarget(
|
243
291
|
target,
|
244
292
|
targetName,
|
245
|
-
false, // check authority TODO check normal targets, don't check service targets (they share authority with
|
293
|
+
false, // check authority TODO check normal targets, don't check service targets (they share authority with release admin)
|
246
294
|
false);
|
247
295
|
|
248
296
|
// assign target role if defined
|
@@ -260,6 +308,7 @@ contract InstanceAdmin is
|
|
260
308
|
_checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
|
261
309
|
_checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
|
262
310
|
_checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
|
311
|
+
_checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TAGET_NAME);
|
263
312
|
|
264
313
|
// create targets for services that need to access the module targets
|
265
314
|
ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
|
@@ -2,10 +2,11 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {
|
5
|
-
|
5
|
+
ACCOUNTING, 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,15 +51,17 @@ 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());
|
58
|
+
_addServiceTargetWithRole(ACCOUNTING());
|
55
59
|
_addServiceTargetWithRole(COMPONENT());
|
56
60
|
_addServiceTargetWithRole(DISTRIBUTION());
|
57
61
|
_addServiceTargetWithRole(ORACLE());
|
58
62
|
_addServiceTargetWithRole(POOL());
|
59
63
|
_addServiceTargetWithRole(BUNDLE());
|
60
|
-
_addServiceTargetWithRole(
|
64
|
+
_addServiceTargetWithRole(RISK());
|
61
65
|
_addServiceTargetWithRole(APPLICATION());
|
62
66
|
_addServiceTargetWithRole(POLICY());
|
63
67
|
_addServiceTargetWithRole(CLAIM());
|
@@ -72,7 +76,7 @@ contract InstanceAuthorizationV3
|
|
72
76
|
_setupInstanceAdminAuthorization();
|
73
77
|
_setupInstanceStoreAuthorization();
|
74
78
|
_setupBundleSetAuthorization();
|
75
|
-
|
79
|
+
_setUpRiskSetAuthorization();
|
76
80
|
}
|
77
81
|
|
78
82
|
|
@@ -83,11 +87,31 @@ contract InstanceAuthorizationV3
|
|
83
87
|
|
84
88
|
// authorize bundle service role
|
85
89
|
functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
|
86
|
-
_authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
|
87
|
-
_authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
|
88
90
|
_authorize(functions, BundleSet.add.selector, "add");
|
89
91
|
_authorize(functions, BundleSet.lock.selector, "lock");
|
90
92
|
_authorize(functions, BundleSet.unlock.selector, "unlock");
|
93
|
+
|
94
|
+
// authorize bundle service role
|
95
|
+
functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(POLICY()));
|
96
|
+
_authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
|
97
|
+
_authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
|
98
|
+
}
|
99
|
+
|
100
|
+
function _setUpRiskSetAuthorization()
|
101
|
+
internal
|
102
|
+
{
|
103
|
+
IAccess.FunctionInfo[] storage functions;
|
104
|
+
|
105
|
+
// authorize risk service role
|
106
|
+
functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(RISK()));
|
107
|
+
_authorize(functions, RiskSet.add.selector, "add");
|
108
|
+
_authorize(functions, RiskSet.pause.selector, "pause");
|
109
|
+
_authorize(functions, RiskSet.activate.selector, "activate");
|
110
|
+
|
111
|
+
// authorize policy service role
|
112
|
+
functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(POLICY()));
|
113
|
+
_authorize(functions, RiskSet.linkPolicy.selector, "linkPolicy");
|
114
|
+
_authorize(functions, RiskSet.unlinkPolicy.selector, "unlinkPolicy");
|
91
115
|
}
|
92
116
|
|
93
117
|
|
@@ -111,8 +135,9 @@ contract InstanceAuthorizationV3
|
|
111
135
|
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _toTargetRoleId(INSTANCE()));
|
112
136
|
_authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
|
113
137
|
|
114
|
-
// authorize
|
115
|
-
|
138
|
+
// authorize component service role
|
139
|
+
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
|
140
|
+
_authorize(functions, InstanceAdmin.setTargetLocked.selector, "setTargetLocked");
|
116
141
|
}
|
117
142
|
|
118
143
|
|
@@ -121,6 +146,13 @@ contract InstanceAuthorizationV3
|
|
121
146
|
{
|
122
147
|
IAccess.FunctionInfo[] storage functions;
|
123
148
|
|
149
|
+
// authorize accounting service role
|
150
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ACCOUNTING()));
|
151
|
+
_authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
|
152
|
+
_authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
|
153
|
+
_authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
|
154
|
+
_authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
|
155
|
+
|
124
156
|
// authorize component service role
|
125
157
|
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
|
126
158
|
_authorize(functions, InstanceStore.createComponent.selector, "createComponent");
|
@@ -128,11 +160,9 @@ contract InstanceAuthorizationV3
|
|
128
160
|
_authorize(functions, InstanceStore.createPool.selector, "createPool");
|
129
161
|
_authorize(functions, InstanceStore.createProduct.selector, "createProduct");
|
130
162
|
_authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
|
131
|
-
_authorize(functions, InstanceStore.
|
132
|
-
_authorize(functions, InstanceStore.
|
133
|
-
|
134
|
-
_authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
|
135
|
-
|
163
|
+
_authorize(functions, InstanceStore.createFee.selector, "createFee");
|
164
|
+
_authorize(functions, InstanceStore.updateFee.selector, "updateFee");
|
165
|
+
|
136
166
|
// authorize distribution service role
|
137
167
|
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
|
138
168
|
_authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
|
@@ -164,7 +194,7 @@ contract InstanceAuthorizationV3
|
|
164
194
|
_authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
|
165
195
|
|
166
196
|
// authorize product service role
|
167
|
-
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(
|
197
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(RISK()));
|
168
198
|
_authorize(functions, InstanceStore.createRisk.selector, "createRisk");
|
169
199
|
_authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
|
170
200
|
_authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
|
@@ -189,6 +219,7 @@ contract InstanceAuthorizationV3
|
|
189
219
|
_authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
|
190
220
|
_authorize(functions, InstanceStore.createPayout.selector, "createPayout");
|
191
221
|
_authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
|
222
|
+
_authorize(functions, InstanceStore.updatePayoutState.selector, "updatePayoutState");
|
192
223
|
}
|
193
224
|
}
|
194
225
|
|
@@ -6,7 +6,7 @@ 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, PREMIUM, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
|
9
|
+
import {COMPONENT, DISTRIBUTOR, DISTRIBUTION, FEE, PREMIUM, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
|
10
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";
|
@@ -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,10 +107,18 @@ 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 bundleCount)
|
114
|
+
{
|
115
|
+
return _bundleSet.bundles(poolNftId);
|
116
|
+
}
|
117
|
+
|
105
118
|
function activeBundles(NftId poolNftId)
|
106
119
|
public
|
107
120
|
view
|
108
|
-
returns (uint256
|
121
|
+
returns (uint256 bundleCount)
|
109
122
|
{
|
110
123
|
return _bundleSet.activeBundles(poolNftId);
|
111
124
|
}
|
@@ -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
|
@@ -145,7 +166,7 @@ contract InstanceReader {
|
|
145
166
|
function claims(NftId policyNftId)
|
146
167
|
public
|
147
168
|
view
|
148
|
-
returns (uint16
|
169
|
+
returns (uint16 claimCount)
|
149
170
|
{
|
150
171
|
return getPolicyInfo(policyNftId).claimsCount;
|
151
172
|
}
|
@@ -183,7 +204,7 @@ contract InstanceReader {
|
|
183
204
|
function payouts(NftId policyNftId, ClaimId claimId)
|
184
205
|
public
|
185
206
|
view
|
186
|
-
returns (uint24
|
207
|
+
returns (uint24 payoutCount)
|
187
208
|
{
|
188
209
|
return getClaimInfo(policyNftId, claimId).payoutsCount;
|
189
210
|
}
|
@@ -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 riskCount)
|
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 activeRiskCount)
|
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
|
|
@@ -330,6 +408,17 @@ contract InstanceReader {
|
|
330
408
|
}
|
331
409
|
}
|
332
410
|
|
411
|
+
function getFeeInfo(NftId productNftId)
|
412
|
+
public
|
413
|
+
view
|
414
|
+
returns (IComponents.FeeInfo memory feeInfo)
|
415
|
+
{
|
416
|
+
bytes memory data = _store.getData(toFeeKey(productNftId));
|
417
|
+
if (data.length > 0) {
|
418
|
+
return abi.decode(data, (IComponents.FeeInfo));
|
419
|
+
}
|
420
|
+
}
|
421
|
+
|
333
422
|
function getPoolInfo(NftId poolNftId)
|
334
423
|
public
|
335
424
|
view
|
@@ -440,7 +529,7 @@ contract InstanceReader {
|
|
440
529
|
}
|
441
530
|
|
442
531
|
|
443
|
-
function
|
532
|
+
function isLocked(address target) public view returns (bool) {
|
444
533
|
return _instance.getInstanceAdmin().isTargetLocked(target);
|
445
534
|
}
|
446
535
|
|
@@ -476,6 +565,10 @@ contract InstanceReader {
|
|
476
565
|
return productNftId.toKey32(PRODUCT());
|
477
566
|
}
|
478
567
|
|
568
|
+
function toFeeKey(NftId productNftId) public pure returns (Key32) {
|
569
|
+
return productNftId.toKey32(FEE());
|
570
|
+
}
|
571
|
+
|
479
572
|
// low level function
|
480
573
|
function getInstance() external view returns (IInstance instance) {
|
481
574
|
return _instance;
|
@@ -485,6 +578,14 @@ contract InstanceReader {
|
|
485
578
|
return _store;
|
486
579
|
}
|
487
580
|
|
581
|
+
function getBundleSet() external view returns (BundleSet bundleSet) {
|
582
|
+
return _bundleSet;
|
583
|
+
}
|
584
|
+
|
585
|
+
function getRiskSet() external view returns (RiskSet riskSet) {
|
586
|
+
return _riskSet;
|
587
|
+
}
|
588
|
+
|
488
589
|
function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
|
489
590
|
return UFixedLib.toUFixed(value, exp);
|
490
591
|
}
|