@etherisc/gif-next 0.0.2-d9bed37-033 → 0.0.2-d9d5e42-801
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 +81 -7
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1046 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +814 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
- 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 +525 -213
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +114 -291
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -164
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +404 -194
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +141 -67
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +32 -132
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +210 -71
- 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 +121 -198
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +380 -45
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +287 -341
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
- 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 +185 -252
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +76 -155
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +239 -203
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +672 -362
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -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 +502 -49
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +302 -14
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +531 -81
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1022 -326
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +393 -52
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1067 -479
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +324 -83
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +59 -47
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +676 -570
- 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/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 +66 -167
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
- 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 +36 -71
- 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 +50 -103
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +128 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +91 -41
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +69 -137
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +380 -45
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +165 -337
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +85 -87
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +62 -142
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -118
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +182 -235
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -149
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +546 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +357 -368
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +125 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +167 -67
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +80 -38
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +182 -215
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +260 -179
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +96 -78
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +103 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +112 -56
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +48 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +163 -178
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +58 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +233 -194
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +103 -73
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +115 -119
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +69 -55
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +176 -209
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +143 -77
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +80 -38
- 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 +60 -12
- 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 +98 -50
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +726 -465
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
- 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 +56 -34
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -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 +386 -64
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +49 -88
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +225 -531
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +77 -75
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +544 -4
- 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 +36 -57
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +134 -367
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +36 -71
- 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/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +49 -102
- 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 +297 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -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 +241 -89
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +134 -10
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +340 -203
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- 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 +84 -56
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +90 -61
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +203 -56
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +73 -39
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +163 -149
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +61 -51
- 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 +11 -11
- 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 +94 -38
- 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 +33 -31
- 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 +69 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- 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/String.sol/StrLib.json +50 -2
- 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 +61 -37
- 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 +101 -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 +32 -16
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +426 -242
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +142 -257
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +87 -80
- package/contracts/authorization/IAuthorization.sol +9 -42
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +247 -33
- package/contracts/distribution/BasicDistribution.sol +18 -16
- package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
- package/contracts/distribution/Distribution.sol +41 -79
- package/contracts/distribution/DistributionService.sol +177 -97
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +32 -24
- package/contracts/examples/fire/FirePool.sol +21 -8
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +32 -14
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +32 -6
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +49 -27
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +97 -18
- package/contracts/instance/IInstanceService.sol +52 -11
- package/contracts/instance/Instance.sol +171 -57
- package/contracts/instance/InstanceAdmin.sol +271 -165
- package/contracts/instance/InstanceAuthorizationV3.sol +115 -43
- package/contracts/instance/InstanceReader.sol +449 -312
- package/contracts/instance/InstanceService.sol +270 -171
- 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/BalanceStore.sol +3 -5
- 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/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +20 -9
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -7
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/oracle/BasicOracle.sol +1 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +1 -3
- package/contracts/oracle/OracleService.sol +96 -77
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +23 -4
- package/contracts/pool/BasicPoolAuthorization.sol +33 -8
- package/contracts/pool/BundleService.sol +55 -154
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +15 -43
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +58 -60
- package/contracts/pool/Pool.sol +106 -98
- package/contracts/pool/PoolLib.sol +356 -0
- package/contracts/pool/PoolService.sol +275 -230
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +60 -20
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +8 -12
- package/contracts/product/BasicProductAuthorization.sol +32 -11
- package/contracts/product/ClaimService.sol +167 -148
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +8 -2
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +25 -11
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +7 -7
- package/contracts/product/PolicyService.sol +243 -297
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +52 -46
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +67 -53
- package/contracts/product/RiskService.sol +92 -31
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +14 -15
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +16 -3
- package/contracts/registry/RegistryAdmin.sol +101 -361
- package/contracts/registry/RegistryAuthorization.sol +284 -0
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +154 -135
- package/contracts/registry/ServiceAuthorizationV3.sol +197 -46
- package/contracts/registry/TokenRegistry.sol +12 -13
- package/contracts/shared/Component.sol +52 -113
- package/contracts/shared/ComponentService.sol +349 -442
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +276 -3
- package/contracts/shared/IComponent.sol +2 -18
- package/contracts/shared/IComponentService.sol +27 -38
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +6 -25
- package/contracts/shared/NftOwnable.sol +6 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +41 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +266 -93
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +46 -19
- package/contracts/staking/IStakingService.sol +21 -8
- package/contracts/staking/Staking.sol +190 -82
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +28 -19
- package/contracts/staking/StakingService.sol +77 -16
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +3 -2
- package/contracts/staking/TargetManagerLib.sol +1 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +69 -38
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +34 -127
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/ProxyManager.sol +14 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
- package/contracts/upgradeability/Versionable.sol +4 -1
- package/package.json +4 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- 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
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentVerifyingService.sol +0 -126
@@ -2,40 +2,32 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
|
-
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
|
-
|
7
|
-
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
8
|
-
import {Amount} from "../type/Amount.sol";
|
9
|
-
import {BundleSet} from "./BundleSet.sol";
|
10
|
-
import {ChainNft} from "../registry/ChainNft.sol";
|
11
|
-
import {NftId} from "../type/NftId.sol";
|
12
|
-
import {RoleId} from "../type/RoleId.sol";
|
13
|
-
import {SecondsLib} from "../type/Seconds.sol";
|
14
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
15
|
-
import {ADMIN_ROLE} from "../type/RoleId.sol";
|
16
|
-
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
17
|
-
|
18
|
-
import {Service} from "../shared/Service.sol";
|
19
|
-
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
20
|
-
import {IService} from "../shared/IService.sol";
|
21
|
-
|
22
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
23
|
-
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
24
|
-
import {IProductComponent} from "../product/IProductComponent.sol";
|
25
5
|
|
6
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
7
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
9
|
+
import {IInstance} from "./IInstance.sol";
|
10
|
+
import {IInstanceService} from "./IInstanceService.sol";
|
26
11
|
import {IRegistry} from "../registry/IRegistry.sol";
|
27
12
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
28
13
|
import {IStakingService} from "../staking/IStakingService.sol";
|
29
|
-
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
30
14
|
|
15
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
16
|
+
import {Amount} from "../type/Amount.sol";
|
17
|
+
import {BundleSet} from "./BundleSet.sol";
|
31
18
|
import {Instance} from "./Instance.sol";
|
32
|
-
import {IInstance} from "./IInstance.sol";
|
33
19
|
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
34
|
-
import {IInstanceService} from "./IInstanceService.sol";
|
35
20
|
import {InstanceReader} from "./InstanceReader.sol";
|
36
21
|
import {InstanceStore} from "./InstanceStore.sol";
|
22
|
+
import {NftId} from "../type/NftId.sol";
|
23
|
+
import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
24
|
+
import {RiskSet} from "./RiskSet.sol";
|
25
|
+
import {RoleId} from "../type/RoleId.sol";
|
37
26
|
import {Seconds} from "../type/Seconds.sol";
|
38
|
-
import {
|
27
|
+
import {Service} from "../shared/Service.sol";
|
28
|
+
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
29
|
+
import {UFixed} from "../type/UFixed.sol";
|
30
|
+
import {VersionPart} from "../type/Version.sol";
|
39
31
|
|
40
32
|
|
41
33
|
contract InstanceService is
|
@@ -48,87 +40,189 @@ contract InstanceService is
|
|
48
40
|
|
49
41
|
IRegistryService internal _registryService;
|
50
42
|
IStakingService internal _stakingService;
|
43
|
+
IComponentService internal _componentService;
|
51
44
|
|
52
45
|
address internal _masterAccessManager;
|
53
46
|
address internal _masterInstanceAdmin;
|
54
47
|
address internal _masterInstance;
|
55
48
|
address internal _masterInstanceReader;
|
56
49
|
address internal _masterInstanceBundleSet;
|
50
|
+
address internal _masterInstanceRiskSet;
|
57
51
|
address internal _masterInstanceStore;
|
58
52
|
|
59
53
|
|
60
|
-
modifier onlyInstance() {
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
65
|
-
}
|
54
|
+
modifier onlyInstance() {
|
55
|
+
_checkInstance(msg.sender, getRelease());
|
56
|
+
_;
|
57
|
+
}
|
66
58
|
|
67
|
-
ObjectType objectType = getRegistry().getObjectInfo(instanceNftId).objectType;
|
68
|
-
if (objectType != INSTANCE()) {
|
69
|
-
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
70
|
-
}
|
71
59
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
60
|
+
/// @inheritdoc IInstanceService
|
61
|
+
function createRole(
|
62
|
+
string memory roleName,
|
63
|
+
RoleId adminRoleId,
|
64
|
+
uint32 maxMemberCount
|
65
|
+
)
|
66
|
+
external
|
67
|
+
restricted()
|
68
|
+
onlyInstance()
|
69
|
+
returns (RoleId roleId)
|
70
|
+
{
|
71
|
+
IInstance instance = IInstance(msg.sender);
|
72
|
+
roleId = instance.getInstanceAdmin().createRole(
|
73
|
+
roleName,
|
74
|
+
adminRoleId,
|
75
|
+
maxMemberCount);
|
76
|
+
}
|
76
77
|
|
77
|
-
|
78
|
+
|
79
|
+
/// @inheritdoc IInstanceService
|
80
|
+
function setRoleActive(RoleId roleId, bool active)
|
81
|
+
external
|
82
|
+
restricted()
|
83
|
+
onlyInstance()
|
84
|
+
{
|
85
|
+
IInstance instance = IInstance(msg.sender);
|
86
|
+
instance.getInstanceAdmin().setRoleActive(roleId, active);
|
78
87
|
}
|
79
88
|
|
80
89
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
90
|
+
/// @inheritdoc IInstanceService
|
91
|
+
function grantRole(RoleId roleId, address account)
|
92
|
+
external
|
93
|
+
restricted()
|
94
|
+
onlyInstance()
|
95
|
+
{
|
96
|
+
IInstance instance = IInstance(msg.sender);
|
97
|
+
instance.getInstanceAdmin().grantRole(roleId, account);
|
86
98
|
}
|
87
99
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
100
|
+
|
101
|
+
/// @inheritdoc IInstanceService
|
102
|
+
function revokeRole(RoleId roleId, address account)
|
103
|
+
external
|
104
|
+
restricted()
|
105
|
+
onlyInstance()
|
106
|
+
{
|
107
|
+
IInstance instance = IInstance(msg.sender);
|
108
|
+
instance.getInstanceAdmin().revokeRole(roleId, account);
|
94
109
|
}
|
95
110
|
|
96
|
-
|
111
|
+
|
112
|
+
/// @inheritdoc IInstanceService
|
113
|
+
function createTarget(address target, string memory name)
|
114
|
+
external
|
115
|
+
restricted()
|
116
|
+
onlyInstance()
|
117
|
+
returns (RoleId contractRoleId)
|
118
|
+
{
|
119
|
+
IInstance instance = IInstance(msg.sender);
|
120
|
+
return instance.getInstanceAdmin().createTarget(target, name);
|
121
|
+
}
|
122
|
+
|
123
|
+
|
124
|
+
/// @inheritdoc IInstanceService
|
125
|
+
function authorizeFunctions(
|
126
|
+
address target,
|
127
|
+
RoleId roleId,
|
128
|
+
IAccess.FunctionInfo[] memory functions
|
129
|
+
)
|
97
130
|
external
|
131
|
+
restricted()
|
132
|
+
onlyInstance()
|
133
|
+
{
|
134
|
+
IInstance instance = IInstance(msg.sender);
|
135
|
+
return instance.getInstanceAdmin().authorizeFunctions(target, roleId, functions);
|
136
|
+
}
|
137
|
+
|
138
|
+
|
139
|
+
/// @inheritdoc IInstanceService
|
140
|
+
function unauthorizeFunctions(
|
141
|
+
address target,
|
142
|
+
IAccess.FunctionInfo[] memory functions
|
143
|
+
)
|
144
|
+
external
|
145
|
+
restricted()
|
146
|
+
onlyInstance()
|
147
|
+
{
|
148
|
+
IInstance instance = IInstance(msg.sender);
|
149
|
+
return instance.getInstanceAdmin().unauthorizeFunctions(target, functions);
|
150
|
+
}
|
151
|
+
|
152
|
+
|
153
|
+
/// @inheritdoc IInstanceService
|
154
|
+
function setTargetLocked(address target, bool locked)
|
155
|
+
external
|
156
|
+
virtual
|
157
|
+
restricted()
|
158
|
+
onlyInstance()
|
159
|
+
{
|
160
|
+
address instanceAddress = msg.sender;
|
161
|
+
IInstance(instanceAddress).getInstanceAdmin().setTargetLocked(target, locked);
|
162
|
+
}
|
163
|
+
|
164
|
+
|
165
|
+
/// @inheritdoc IInstanceService
|
166
|
+
function setInstanceLocked(bool locked)
|
167
|
+
external
|
168
|
+
virtual
|
169
|
+
restricted()
|
170
|
+
onlyInstance()
|
171
|
+
{
|
172
|
+
address instanceAddress = msg.sender;
|
173
|
+
IInstance(instanceAddress).getInstanceAdmin().setInstanceLocked(locked);
|
174
|
+
}
|
175
|
+
|
176
|
+
|
177
|
+
/// @inheritdoc IInstanceService
|
178
|
+
function createInstance(bool allowAnyToken)
|
179
|
+
external
|
180
|
+
virtual
|
181
|
+
restricted()
|
98
182
|
returns (
|
99
|
-
|
100
|
-
NftId
|
183
|
+
IInstance instance,
|
184
|
+
NftId instanceNftId
|
101
185
|
)
|
102
186
|
{
|
103
187
|
// tx sender will become instance owner
|
104
188
|
address instanceOwner = msg.sender;
|
105
189
|
|
106
190
|
// create instance admin and instance
|
107
|
-
InstanceAdmin instanceAdmin =
|
108
|
-
|
191
|
+
InstanceAdmin instanceAdmin = _cloneNewInstanceAdmin();
|
192
|
+
instance = _createInstance(instanceAdmin, instanceOwner, allowAnyToken);
|
109
193
|
|
110
194
|
// register cloned instance with registry
|
111
|
-
|
112
|
-
|
195
|
+
instanceNftId = _registryService.registerInstance(
|
196
|
+
instance, instanceOwner).nftId;
|
197
|
+
|
198
|
+
// MUST be set after instance is set up and registered
|
199
|
+
IAuthorization instanceAuthorization = InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization();
|
200
|
+
instanceAdmin.completeSetup(
|
201
|
+
address(getRegistry()),
|
202
|
+
address(instanceAuthorization),
|
203
|
+
getRelease(),
|
204
|
+
address(instance));
|
205
|
+
|
206
|
+
// hard checks for newly cloned instance
|
207
|
+
assert(address(instance.getRegistry()) == address(getRegistry()));
|
208
|
+
assert(instance.getRelease() == getRelease());
|
113
209
|
|
114
210
|
// register cloned instance as staking target
|
115
211
|
_stakingService.createInstanceTarget(
|
116
|
-
|
212
|
+
instanceNftId,
|
117
213
|
TargetManagerLib.getDefaultLockingPeriod(),
|
118
214
|
TargetManagerLib.getDefaultRewardRate());
|
119
215
|
|
120
|
-
// MUST be set after instance is set up and registered
|
121
|
-
instanceAdmin.initializeInstanceAuthorization(address(clonedInstance));
|
122
|
-
|
123
216
|
emit LogInstanceCloned(
|
124
|
-
|
125
|
-
address(
|
217
|
+
instanceNftId,
|
218
|
+
address(instance));
|
126
219
|
}
|
127
220
|
|
128
221
|
|
129
222
|
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
130
223
|
external
|
131
224
|
virtual
|
225
|
+
restricted()
|
132
226
|
onlyInstance()
|
133
227
|
{
|
134
228
|
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
@@ -141,6 +235,7 @@ contract InstanceService is
|
|
141
235
|
function setStakingRewardRate(UFixed rewardRate)
|
142
236
|
external
|
143
237
|
virtual
|
238
|
+
restricted()
|
144
239
|
onlyInstance()
|
145
240
|
{
|
146
241
|
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
@@ -149,10 +244,23 @@ contract InstanceService is
|
|
149
244
|
rewardRate);
|
150
245
|
}
|
151
246
|
|
247
|
+
function setStakingMaxAmount(Amount maxStakedAmount)
|
248
|
+
external
|
249
|
+
virtual
|
250
|
+
restricted()
|
251
|
+
onlyInstance()
|
252
|
+
{
|
253
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
254
|
+
_stakingService.setInstanceMaxStakedAmount(
|
255
|
+
instanceNftId,
|
256
|
+
maxStakedAmount);
|
257
|
+
}
|
258
|
+
|
152
259
|
|
153
260
|
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
|
154
261
|
external
|
155
262
|
virtual
|
263
|
+
restricted()
|
156
264
|
onlyInstance()
|
157
265
|
{
|
158
266
|
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
@@ -166,55 +274,44 @@ contract InstanceService is
|
|
166
274
|
function withdrawStakingRewardReserves(Amount dipAmount)
|
167
275
|
external
|
168
276
|
virtual
|
277
|
+
restricted()
|
169
278
|
onlyInstance()
|
170
279
|
returns (Amount newBalance)
|
171
280
|
{
|
172
281
|
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
173
|
-
_stakingService.withdrawInstanceRewardReserves(
|
282
|
+
newBalance = _stakingService.withdrawInstanceRewardReserves(
|
174
283
|
instanceNftId,
|
175
284
|
dipAmount);
|
176
285
|
}
|
177
286
|
|
178
287
|
|
179
|
-
function
|
180
|
-
external
|
288
|
+
function upgradeInstanceReader()
|
289
|
+
external
|
181
290
|
virtual
|
182
|
-
|
291
|
+
restricted()
|
292
|
+
onlyInstance()
|
183
293
|
{
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
}
|
190
|
-
|
191
|
-
IRegistry registry = getRegistry();
|
192
|
-
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
193
|
-
|
194
|
-
IInstance instance = IInstance(
|
195
|
-
registry.getObjectAddress(instanceNftId));
|
294
|
+
address instanceAddress = msg.sender;
|
295
|
+
IInstance instance = IInstance(msg.sender);
|
296
|
+
|
297
|
+
InstanceReader upgradedInstanceReaderClone = InstanceReader(
|
298
|
+
Clones.clone(address(_masterInstanceReader)));
|
196
299
|
|
197
|
-
|
198
|
-
|
199
|
-
// instance.getInstanceAdmin().setTargetLockedByService(
|
200
|
-
// componentAddress,
|
201
|
-
// locked);
|
300
|
+
upgradedInstanceReaderClone.initializeWithInstance(instanceAddress);
|
301
|
+
instance.setInstanceReader(upgradedInstanceReaderClone);
|
202
302
|
}
|
203
303
|
|
204
304
|
|
205
|
-
function getMasterInstanceReader() external view returns (address) {
|
206
|
-
return _masterInstanceReader;
|
207
|
-
}
|
208
|
-
|
209
305
|
function setAndRegisterMasterInstance(address instanceAddress)
|
210
|
-
|
211
|
-
|
212
|
-
|
306
|
+
external
|
307
|
+
virtual
|
308
|
+
onlyOwner()
|
309
|
+
returns(NftId masterInstanceNftId)
|
213
310
|
{
|
214
311
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
215
312
|
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
216
313
|
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
217
|
-
|
314
|
+
if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
|
218
315
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
219
316
|
|
220
317
|
IInstance instance = IInstance(instanceAddress);
|
@@ -223,28 +320,34 @@ contract InstanceService is
|
|
223
320
|
address instanceAdminAddress = address(instanceAdmin);
|
224
321
|
InstanceReader instanceReader = instance.getInstanceReader();
|
225
322
|
address instanceReaderAddress = address(instanceReader);
|
226
|
-
BundleSet
|
227
|
-
address
|
323
|
+
BundleSet bundleSet = instance.getBundleSet();
|
324
|
+
address bundleSetAddress = address(bundleSet);
|
325
|
+
RiskSet riskSet = instance.getRiskSet();
|
326
|
+
address riskSetAddress = address(riskSet);
|
228
327
|
InstanceStore instanceStore = instance.getInstanceStore();
|
229
328
|
address instanceStoreAddress = address(instanceStore);
|
230
329
|
|
231
330
|
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
232
331
|
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
233
332
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
234
|
-
if(
|
333
|
+
if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
334
|
+
if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
|
235
335
|
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
236
336
|
|
237
337
|
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
238
|
-
if(
|
338
|
+
if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
339
|
+
if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
|
239
340
|
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
240
|
-
if(
|
341
|
+
if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
|
342
|
+
if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
|
241
343
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
242
344
|
|
243
345
|
_masterAccessManager = accessManagerAddress;
|
244
346
|
_masterInstanceAdmin = instanceAdminAddress;
|
245
347
|
_masterInstance = instanceAddress;
|
246
348
|
_masterInstanceReader = instanceReaderAddress;
|
247
|
-
_masterInstanceBundleSet =
|
349
|
+
_masterInstanceBundleSet = bundleSetAddress;
|
350
|
+
_masterInstanceRiskSet = riskSetAddress;
|
248
351
|
_masterInstanceStore = instanceStoreAddress;
|
249
352
|
|
250
353
|
IInstance masterInstance = IInstance(_masterInstance);
|
@@ -252,7 +355,12 @@ contract InstanceService is
|
|
252
355
|
masterInstanceNftId = info.nftId;
|
253
356
|
}
|
254
357
|
|
255
|
-
|
358
|
+
|
359
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress)
|
360
|
+
external
|
361
|
+
virtual
|
362
|
+
onlyOwner
|
363
|
+
{
|
256
364
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
257
365
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
258
366
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -263,41 +371,31 @@ contract InstanceService is
|
|
263
371
|
_masterInstanceReader = instanceReaderAddress;
|
264
372
|
}
|
265
373
|
|
266
|
-
function
|
267
|
-
|
268
|
-
onlyInstanceOwner(instanceNftId)
|
269
|
-
onlyNftOfType(instanceNftId, INSTANCE())
|
270
|
-
{
|
271
|
-
IRegistry registry = getRegistry();
|
272
|
-
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
273
|
-
Instance instance = Instance(instanceInfo.objectAddress);
|
274
|
-
|
275
|
-
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
276
|
-
upgradedInstanceReaderClone.initializeWithInstance(address(instance));
|
277
|
-
instance.setInstanceReader(upgradedInstanceReaderClone);
|
374
|
+
function getMasterInstanceReader() external virtual view returns (address) {
|
375
|
+
return _masterInstanceReader;
|
278
376
|
}
|
279
377
|
|
378
|
+
//--- internal functions --------------------------------------------------------//
|
379
|
+
|
280
380
|
/// @dev create new cloned instance admin
|
281
381
|
/// function used to setup a new instance
|
282
|
-
function
|
382
|
+
function _cloneNewInstanceAdmin()
|
283
383
|
internal
|
284
384
|
virtual
|
285
|
-
returns (InstanceAdmin
|
385
|
+
returns (InstanceAdmin clonedAdmin)
|
286
386
|
{
|
287
|
-
//
|
387
|
+
// clone instance specific access manager
|
288
388
|
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
289
|
-
Clones.clone(
|
389
|
+
Clones.clone(
|
390
|
+
InstanceAdmin(_masterInstanceAdmin).authority()));
|
290
391
|
|
291
392
|
// set up the instance admin
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
InstanceAdmin
|
298
|
-
clonedInstanceAdmin.initialize(
|
299
|
-
clonedAccessManager,
|
300
|
-
authorization);
|
393
|
+
clonedAdmin = InstanceAdmin(
|
394
|
+
Clones.clone(_masterInstanceAdmin));
|
395
|
+
|
396
|
+
clonedAdmin.initialize(
|
397
|
+
address(clonedAccessManager),
|
398
|
+
"InstanceAdmin");
|
301
399
|
}
|
302
400
|
|
303
401
|
|
@@ -305,58 +403,31 @@ contract InstanceService is
|
|
305
403
|
/// function used to setup a new instance
|
306
404
|
function _createInstance(
|
307
405
|
InstanceAdmin instanceAdmin,
|
308
|
-
address instanceOwner
|
406
|
+
address instanceOwner,
|
407
|
+
bool allowAnyToken
|
309
408
|
)
|
310
409
|
internal
|
311
410
|
virtual
|
312
|
-
returns (
|
411
|
+
returns (IInstance)
|
313
412
|
{
|
314
|
-
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
315
|
-
BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
|
316
|
-
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
317
|
-
|
318
413
|
// clone instance
|
319
|
-
clonedInstance = Instance(Clones.clone(_masterInstance));
|
414
|
+
Instance clonedInstance = Instance(Clones.clone(_masterInstance));
|
320
415
|
clonedInstance.initialize(
|
321
416
|
instanceAdmin,
|
322
|
-
|
323
|
-
|
324
|
-
|
417
|
+
InstanceStore(Clones.clone(address(_masterInstanceStore))),
|
418
|
+
BundleSet(Clones.clone(_masterInstanceBundleSet)),
|
419
|
+
RiskSet(Clones.clone(_masterInstanceRiskSet)),
|
420
|
+
InstanceReader(Clones.clone(address(_masterInstanceReader))),
|
325
421
|
getRegistry(),
|
326
|
-
|
327
|
-
|
328
|
-
|
422
|
+
getRelease(),
|
423
|
+
instanceOwner,
|
424
|
+
allowAnyToken);
|
329
425
|
|
330
|
-
|
331
|
-
|
332
|
-
NftId instanceNftId,
|
333
|
-
address targetAddress,
|
334
|
-
string memory targetName,
|
335
|
-
RoleId[] memory roles,
|
336
|
-
bytes4[][] memory selectors
|
337
|
-
)
|
338
|
-
internal
|
339
|
-
virtual
|
340
|
-
{
|
341
|
-
// TODO instanceAdmin will check target instance match anyway
|
342
|
-
(
|
343
|
-
IInstance instance, // or instanceInfo
|
344
|
-
// or targetInfo
|
345
|
-
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
346
|
-
|
347
|
-
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
426
|
+
return clonedInstance;
|
427
|
+
}
|
348
428
|
|
349
|
-
// TODO refactor/implement
|
350
|
-
// instanceAdmin.createGifTarget(targetAddress, targetName);
|
351
429
|
|
352
|
-
|
353
|
-
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
354
|
-
// TODO refactor/implement
|
355
|
-
// instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
356
|
-
}
|
357
|
-
}
|
358
|
-
|
359
|
-
/// @dev top level initializer
|
430
|
+
/// @dev top level initializer (upgradable contract)
|
360
431
|
function _initialize(
|
361
432
|
address owner,
|
362
433
|
bytes memory data
|
@@ -366,14 +437,15 @@ contract InstanceService is
|
|
366
437
|
initializer()
|
367
438
|
{
|
368
439
|
(
|
369
|
-
address
|
370
|
-
address
|
440
|
+
address authority,
|
441
|
+
address registry
|
371
442
|
) = abi.decode(data, (address, address));
|
372
443
|
|
373
|
-
|
444
|
+
__Service_init(authority, registry, owner);
|
374
445
|
|
375
446
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
376
447
|
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
448
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
377
449
|
|
378
450
|
_registerInterface(type(IInstanceService).interfaceId);
|
379
451
|
}
|
@@ -398,14 +470,41 @@ contract InstanceService is
|
|
398
470
|
}
|
399
471
|
|
400
472
|
componentNftId = componentInfo.nftId;
|
401
|
-
}
|
473
|
+
}
|
474
|
+
|
475
|
+
instance = Instance(instanceInfo.objectAddress);
|
476
|
+
}
|
477
|
+
|
478
|
+
|
479
|
+
function _checkInstance(
|
480
|
+
address instanceAddress,
|
481
|
+
VersionPart expectedRelease
|
482
|
+
)
|
483
|
+
internal
|
484
|
+
virtual
|
485
|
+
view
|
486
|
+
{
|
487
|
+
IRegistry registry = getRegistry();
|
402
488
|
|
489
|
+
NftId instanceNftId = registry.getNftIdForAddress(instanceAddress);
|
490
|
+
if (instanceNftId.eqz()) {
|
491
|
+
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
403
492
|
}
|
404
493
|
|
405
|
-
|
406
|
-
|
494
|
+
ObjectType objectType = registry.getObjectInfo(instanceNftId).objectType;
|
495
|
+
if (objectType != INSTANCE()) {
|
496
|
+
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
497
|
+
}
|
498
|
+
|
499
|
+
if (expectedRelease.gtz()) {
|
500
|
+
VersionPart instanceRelease = IInstance(instanceAddress).getRelease();
|
501
|
+
if (instanceRelease != expectedRelease) {
|
502
|
+
revert ErrorInstanceServiceInstanceVersionMismatch(instanceNftId, expectedRelease, instanceRelease);
|
503
|
+
}
|
504
|
+
}
|
407
505
|
}
|
408
506
|
|
507
|
+
|
409
508
|
// From IService
|
410
509
|
function _getDomain() internal pure override returns(ObjectType) {
|
411
510
|
return INSTANCE();
|
@@ -17,7 +17,7 @@ contract InstanceServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
InstanceService svc = new InstanceService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|
@@ -7,10 +7,10 @@ import {Amount} from "../type/Amount.sol";
|
|
7
7
|
import {Key32} from "../type/Key32.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
9
|
import {ClaimId} from "../type/ClaimId.sol";
|
10
|
-
import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
|
10
|
+
import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR, FEE} from "../type/ObjectType.sol";
|
11
11
|
import {RequestId} from "../type/RequestId.sol";
|
12
12
|
import {RiskId} from "../type/RiskId.sol";
|
13
|
-
import {StateId} from "../type/StateId.sol";
|
13
|
+
import {StateId, KEEP_STATE} from "../type/StateId.sol";
|
14
14
|
import {ReferralId} from "../type/Referral.sol";
|
15
15
|
import {DistributorType} from "../type/DistributorType.sol";
|
16
16
|
import {PayoutId} from "../type/PayoutId.sol";
|
@@ -85,6 +85,17 @@ contract InstanceStore is
|
|
85
85
|
_update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
|
86
86
|
}
|
87
87
|
|
88
|
+
|
89
|
+
//--- Fee -----------------------------------------------------------//
|
90
|
+
function createFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
|
91
|
+
_create(_toNftKey32(productNftId, FEE()), abi.encode(info));
|
92
|
+
}
|
93
|
+
|
94
|
+
// Fee only has one state, so no change change possible
|
95
|
+
function updateFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
|
96
|
+
_update(_toNftKey32(productNftId, FEE()), abi.encode(info), KEEP_STATE());
|
97
|
+
}
|
98
|
+
|
88
99
|
//--- Pool --------------------------------------------------------------//
|
89
100
|
|
90
101
|
function createPool(
|