@etherisc/gif-next 0.0.2-4c19d89-776 → 0.0.2-4c2fb12-528
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 +108 -332
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +111 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +655 -299
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +331 -56
- 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 +501 -231
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +131 -16
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +64 -152
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +322 -67
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -98
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +448 -148
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +163 -77
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -97
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +296 -20
- 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 +109 -110
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +321 -66
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -134
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +321 -66
- 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 +126 -176
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +321 -66
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -73
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -148
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +321 -66
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -190
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +321 -66
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +450 -28
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +355 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +488 -85
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +942 -471
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +289 -78
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +615 -518
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +387 -64
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -52
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1328 -2007
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
- 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 +33 -45
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +340 -60
- 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 +19 -31
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -31
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -79
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +321 -66
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -41
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -41
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +346 -87
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +273 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +123 -41
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -58
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +321 -66
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -70
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +208 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +50 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -52
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +224 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +138 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +116 -114
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +115 -65
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -52
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +258 -44
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +104 -42
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +71 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +799 -472
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +96 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +841 -419
- 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 +197 -129
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -31
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +212 -232
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +133 -71
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -31
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +119 -147
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -31
- 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/INftOwnable.sol/INftOwnable.json +19 -0
- 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 +19 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -31
- 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 +21 -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 +19 -0
- 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 +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1453 -153
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +161 -110
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1565 -239
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +146 -67
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +200 -157
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -44
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1633 -819
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +159 -87
- 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 +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- 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 +93 -37
- 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 +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- 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 +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/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 +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
- 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/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +15 -3
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +361 -371
- package/contracts/authorization/AccessAdminLib.sol +678 -0
- package/contracts/authorization/AccessManagerCloneable.sol +23 -32
- package/contracts/authorization/Authorization.sol +82 -229
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +83 -84
- package/contracts/authorization/IAuthorization.sol +3 -51
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +7 -8
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +12 -56
- package/contracts/distribution/DistributionService.sol +154 -64
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +24 -10
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +6 -10
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +98 -12
- package/contracts/instance/IInstanceService.sol +54 -7
- package/contracts/instance/Instance.sol +165 -61
- package/contracts/instance/InstanceAdmin.sol +183 -313
- package/contracts/instance/InstanceAuthorizationV3.sol +123 -61
- package/contracts/instance/InstanceReader.sol +354 -385
- package/contracts/instance/InstanceService.sol +283 -173
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +15 -6
- package/contracts/instance/module/IDistribution.sol +19 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +3 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +4 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -18
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +7 -2
- package/contracts/pool/Pool.sol +6 -20
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -184
- package/contracts/product/ApplicationService.sol +85 -17
- package/contracts/product/BasicProduct.sol +2 -5
- package/contracts/product/BasicProductAuthorization.sol +11 -4
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +24 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IRiskService.sol +21 -3
- package/contracts/product/PolicyService.sol +40 -77
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +33 -31
- package/contracts/product/Product.sol +40 -18
- package/contracts/product/RiskService.sol +57 -12
- package/contracts/registry/IRegistry.sol +15 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +85 -266
- package/contracts/registry/RegistryAuthorization.sol +337 -0
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +70 -116
- package/contracts/registry/ReleaseRegistry.sol +57 -43
- package/contracts/registry/ServiceAuthorizationV3.sol +128 -33
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +20 -37
- package/contracts/shared/ComponentService.sol +249 -250
- package/contracts/shared/ContractLib.sol +134 -75
- package/contracts/shared/IComponent.sol +1 -4
- package/contracts/shared/IComponentService.sol +21 -22
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +6 -11
- package/contracts/shared/NftOwnable.sol +4 -2
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Registerable.sol +1 -4
- package/contracts/shared/Service.sol +6 -4
- package/contracts/shared/TokenHandler.sol +5 -4
- package/contracts/staking/IStaking.sol +265 -64
- package/contracts/staking/IStakingService.sol +44 -82
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +475 -204
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +49 -158
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +21 -17
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/type/Version.sol +39 -0
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
pragma solidity ^0.8.20;
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
|
5
5
|
import {IInstance} from "./IInstance.sol";
|
|
6
6
|
import {IService} from "../shared/IService.sol";
|
|
7
|
+
|
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
|
7
9
|
import {NftId} from "../type/NftId.sol";
|
|
8
10
|
import {ObjectType} from "../type/ObjectType.sol";
|
|
11
|
+
import {RoleId} from "../type/RoleId.sol";
|
|
9
12
|
import {Seconds} from "../type/Seconds.sol";
|
|
10
13
|
import {UFixed} from "../type/UFixed.sol";
|
|
11
14
|
import {VersionPart} from "../type/Version.sol";
|
|
@@ -15,7 +18,7 @@ interface IInstanceService is IService {
|
|
|
15
18
|
// onlyInstance
|
|
16
19
|
error ErrorInstanceServiceNotRegistered(address instance);
|
|
17
20
|
error ErrorInstanceServiceNotInstance(address instance, ObjectType objectType);
|
|
18
|
-
error ErrorInstanceServiceInstanceVersionMismatch(
|
|
21
|
+
error ErrorInstanceServiceInstanceVersionMismatch(NftId instanceNftId, VersionPart expectedRelease, VersionPart instanceRelease);
|
|
19
22
|
|
|
20
23
|
error ErrorInstanceServiceComponentNotInstanceLinked(address component);
|
|
21
24
|
|
|
@@ -36,6 +39,7 @@ interface IInstanceService is IService {
|
|
|
36
39
|
error ErrorInstanceServiceBundleSetZero();
|
|
37
40
|
error ErrorInstanceServiceRiskSetZero();
|
|
38
41
|
error ErrorInstanceServiceInstanceStoreZero();
|
|
42
|
+
error ErrorInstanceServiceProductStoreZero();
|
|
39
43
|
|
|
40
44
|
error ErrorInstanceServiceInstanceAuthorityMismatch();
|
|
41
45
|
error ErrorInstanceServiceBundleSetAuthorityMismatch();
|
|
@@ -44,6 +48,7 @@ interface IInstanceService is IService {
|
|
|
44
48
|
error ErrorInstanceServiceBundleSetInstanceMismatch();
|
|
45
49
|
error ErrorInstanceServiceRiskSetInstanceMismatch();
|
|
46
50
|
error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
|
|
51
|
+
error ErrorInstanceServiceProductStoreAuthorityMismatch();
|
|
47
52
|
|
|
48
53
|
error ErrorInstanceServiceRequestUnauhorized(address caller);
|
|
49
54
|
error ErrorInstanceServiceNotInstanceNftId(NftId nftId);
|
|
@@ -51,22 +56,64 @@ interface IInstanceService is IService {
|
|
|
51
56
|
error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
|
|
52
57
|
error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
|
|
53
58
|
|
|
54
|
-
event
|
|
59
|
+
event LogInstanceServiceInstanceLocked(NftId instanceNftId, bool locked);
|
|
60
|
+
event LogInstanceServiceInstanceCreated(NftId instanceNftId, address instance);
|
|
61
|
+
event LogInstanceServiceMasterInstanceReaderUpgraded(NftId instanceNfId, address newInstanceReader);
|
|
62
|
+
event LogInstanceServiceInstanceReaderUpgraded(NftId instanceNfId, address newInstanceReader);
|
|
63
|
+
|
|
64
|
+
/// @dev Creates a new custom role for the calling instance.
|
|
65
|
+
function createRole(string memory roleName, RoleId adminRoleId, uint32 maxMemberCount) external returns (RoleId roleId);
|
|
66
|
+
|
|
67
|
+
/// @dev Sets the specified custom role as active or inactive for the calling instance.
|
|
68
|
+
function setRoleActive(RoleId roleId, bool active) external;
|
|
69
|
+
|
|
70
|
+
/// @dev Grants the specified custom role to the specified account for the calling instance.
|
|
71
|
+
function grantRole(RoleId roleId, address account) external;
|
|
72
|
+
|
|
73
|
+
/// @dev Revokes the specified custom role from the specified account for the calling instance.
|
|
74
|
+
function revokeRole(RoleId roleId, address account) external;
|
|
55
75
|
|
|
56
|
-
|
|
76
|
+
/// @dev Creates a new custom target for the calling instance.
|
|
77
|
+
/// All custom trargets are created with a corresponding contract role.
|
|
78
|
+
function createTarget(address target, string memory name) external returns (RoleId contractRoleId);
|
|
79
|
+
|
|
80
|
+
/// @dev Authorizes the specified functions for the specified target.
|
|
81
|
+
function authorizeFunctions(address target, RoleId roleId, IAccess.FunctionInfo[] memory functions) external;
|
|
82
|
+
|
|
83
|
+
/// @dev Removes any role authorization for the specified functions.
|
|
84
|
+
function unauthorizeFunctions(address target, IAccess.FunctionInfo[] memory functions) external;
|
|
85
|
+
|
|
86
|
+
/// @dev Locks/unlocks the specified target constrolled by the corresponding instance admin.
|
|
87
|
+
function setTargetLocked(address target, bool locked) external;
|
|
88
|
+
|
|
89
|
+
/// @dev Locks the complete instance, including all its components.
|
|
90
|
+
function setInstanceLocked(bool locked) external;
|
|
91
|
+
|
|
92
|
+
/// @dev Creates a new instance.
|
|
93
|
+
/// The caller becomes the owner of the new instance.
|
|
94
|
+
/// Creation of a new instance is achieved by this service through the creation and registration
|
|
95
|
+
/// of a new clone of the master instance and then setting up the initial wiring and authorization
|
|
96
|
+
/// of the necessary components.
|
|
97
|
+
/// @param allowAnyToken specifies whether the new instance is allowed to use any token or
|
|
98
|
+
/// only tokens that are registered in the `TokenRegistry`. Use of tokens **not** registered in the
|
|
99
|
+
/// `TokenRegistry` may result in problems with token handline and is therefor not recommended. The
|
|
100
|
+
/// use of such instances **is not supported** by Etherisc.
|
|
101
|
+
function createInstance(bool allowAnyToken)
|
|
57
102
|
external
|
|
58
103
|
returns (
|
|
59
104
|
IInstance instance,
|
|
60
105
|
NftId instanceNftId
|
|
61
106
|
);
|
|
62
107
|
|
|
63
|
-
function upgradeInstanceReader(
|
|
108
|
+
function upgradeInstanceReader() external;
|
|
64
109
|
function upgradeMasterInstanceReader(address instanceReaderAddress) external;
|
|
65
110
|
|
|
66
111
|
function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
|
|
67
112
|
function setStakingRewardRate(UFixed rewardRate) external;
|
|
68
|
-
function
|
|
113
|
+
function setStakingMaxAmount(Amount maxStakedAmount) external;
|
|
114
|
+
|
|
115
|
+
function refillInstanceRewardReserves(address rewardProvider, Amount dipAmount) external returns (Amount newBalance);
|
|
69
116
|
|
|
70
117
|
/// @dev Defunds the staking reward reserves for the specified target.
|
|
71
|
-
function
|
|
118
|
+
function withdrawInstanceRewardReserves(Amount dipAmount) external returns (Amount newBalance);
|
|
72
119
|
}
|
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
pragma solidity ^0.8.20;
|
|
3
3
|
|
|
4
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
|
5
|
+
import {IInstance} from "./IInstance.sol";
|
|
6
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
|
7
|
+
import {IInstanceService} from "./IInstanceService.sol";
|
|
8
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
|
9
|
+
|
|
4
10
|
import {Amount} from "../type/Amount.sol";
|
|
5
11
|
import {BundleSet} from "./BundleSet.sol";
|
|
6
12
|
import {RiskSet} from "./RiskSet.sol";
|
|
7
13
|
import {COMPONENT, INSTANCE} from "../type/ObjectType.sol";
|
|
8
|
-
import {IInstance} from "./IInstance.sol";
|
|
9
|
-
import {IComponentService} from "../shared/IComponentService.sol";
|
|
10
|
-
import {IInstanceService} from "./IInstanceService.sol";
|
|
11
14
|
import {InstanceReader} from "./InstanceReader.sol";
|
|
12
15
|
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
|
13
16
|
import {InstanceStore} from "./InstanceStore.sol";
|
|
14
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
|
15
17
|
import {NftId} from "../type/NftId.sol";
|
|
18
|
+
import {ProductStore} from "./ProductStore.sol";
|
|
16
19
|
import {Registerable} from "../shared/Registerable.sol";
|
|
17
20
|
import {RoleId} from "../type/RoleId.sol";
|
|
18
21
|
import {Seconds} from "../type/Seconds.sol";
|
|
19
22
|
import {UFixed} from "../type/UFixed.sol";
|
|
23
|
+
import {VersionPart} from "../type/Version.sol";
|
|
20
24
|
|
|
21
25
|
contract Instance is
|
|
22
26
|
IInstance,
|
|
@@ -32,76 +36,110 @@ contract Instance is
|
|
|
32
36
|
BundleSet internal _bundleSet;
|
|
33
37
|
RiskSet internal _riskSet;
|
|
34
38
|
InstanceStore internal _instanceStore;
|
|
39
|
+
ProductStore internal _productStore;
|
|
35
40
|
NftId [] internal _products;
|
|
41
|
+
bool internal _tokenRegistryDisabled;
|
|
36
42
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
43
|
+
|
|
44
|
+
modifier onlyCustomRoleAdmin(RoleId roleId) {
|
|
45
|
+
if (!_instanceAdmin.isRoleCustom(roleId)) {
|
|
46
|
+
revert ErrorInstanceNotCustomRole(roleId);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// instance owner can always act as role admin
|
|
50
|
+
address account = msg.sender;
|
|
51
|
+
if (account != getOwner()) {
|
|
52
|
+
if (!_instanceAdmin.isRoleAdmin(roleId, account)) {
|
|
53
|
+
revert ErrorInstanceNotRoleAdmin(roleId, account);
|
|
54
|
+
}
|
|
40
55
|
}
|
|
41
56
|
_;
|
|
42
57
|
}
|
|
43
58
|
|
|
59
|
+
|
|
44
60
|
function initialize(
|
|
45
|
-
|
|
46
|
-
InstanceStore instanceStore,
|
|
47
|
-
BundleSet bundleSet,
|
|
48
|
-
RiskSet riskSet,
|
|
49
|
-
InstanceReader instanceReader,
|
|
61
|
+
InstanceContracts memory instanceContracts,
|
|
50
62
|
IRegistry registry,
|
|
51
|
-
|
|
63
|
+
VersionPart release,
|
|
64
|
+
address initialOwner,
|
|
65
|
+
bool tokenRegistryDisabled // only disable for testing
|
|
52
66
|
)
|
|
53
67
|
external
|
|
54
68
|
initializer()
|
|
55
69
|
{
|
|
56
|
-
if(address(instanceAdmin) == address(0)) {
|
|
70
|
+
if(address(instanceContracts.instanceAdmin) == address(0)) {
|
|
57
71
|
revert ErrorInstanceInstanceAdminZero();
|
|
58
72
|
}
|
|
59
73
|
|
|
60
|
-
_instanceAdmin = instanceAdmin;
|
|
74
|
+
_instanceAdmin = instanceContracts.instanceAdmin;
|
|
61
75
|
|
|
62
76
|
// setup instance object info
|
|
63
|
-
__Registerable_init(
|
|
64
|
-
instanceAdmin.authority(),
|
|
65
|
-
address(registry),
|
|
66
|
-
registry.getNftId(),
|
|
67
|
-
INSTANCE(),
|
|
68
|
-
|
|
69
|
-
initialOwner,
|
|
70
|
-
"");
|
|
77
|
+
__Registerable_init({
|
|
78
|
+
authority: instanceContracts.instanceAdmin.authority(),
|
|
79
|
+
registry: address(registry),
|
|
80
|
+
parentNftId: registry.getNftId(),
|
|
81
|
+
objectType: INSTANCE(),
|
|
82
|
+
isInterceptor: false,
|
|
83
|
+
initialOwner: initialOwner,
|
|
84
|
+
data: ""});
|
|
71
85
|
|
|
72
86
|
// store instance supporting contracts
|
|
73
|
-
_instanceStore = instanceStore;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
87
|
+
_instanceStore = instanceContracts.instanceStore;
|
|
88
|
+
_productStore = instanceContracts.productStore;
|
|
89
|
+
_bundleSet = instanceContracts.bundleSet;
|
|
90
|
+
_riskSet = instanceContracts.riskSet;
|
|
91
|
+
_instanceReader = instanceContracts.instanceReader;
|
|
77
92
|
|
|
78
93
|
// initialize instance supporting contracts
|
|
79
94
|
_instanceStore.initialize();
|
|
80
|
-
|
|
81
|
-
|
|
95
|
+
_productStore.initialize();
|
|
96
|
+
_bundleSet.initialize(instanceContracts.instanceAdmin.authority(), address(registry));
|
|
97
|
+
_riskSet.initialize(instanceContracts.instanceAdmin.authority(), address(registry));
|
|
82
98
|
_instanceReader.initialize();
|
|
83
99
|
|
|
84
100
|
_componentService = IComponentService(
|
|
85
101
|
getRegistry().getServiceAddress(
|
|
86
102
|
COMPONENT(),
|
|
87
|
-
|
|
103
|
+
release));
|
|
88
104
|
|
|
89
105
|
_instanceService = IInstanceService(
|
|
90
106
|
getRegistry().getServiceAddress(
|
|
91
107
|
INSTANCE(),
|
|
92
|
-
|
|
108
|
+
release));
|
|
109
|
+
|
|
110
|
+
_tokenRegistryDisabled = tokenRegistryDisabled;
|
|
93
111
|
|
|
94
112
|
_registerInterface(type(IInstance).interfaceId);
|
|
95
113
|
}
|
|
96
114
|
|
|
115
|
+
|
|
116
|
+
function setInstanceLocked(bool locked)
|
|
117
|
+
external
|
|
118
|
+
// not restricted(): need to be able to unlock a locked instance
|
|
119
|
+
onlyOwner()
|
|
120
|
+
{
|
|
121
|
+
_instanceService.setInstanceLocked(locked);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
function upgradeInstanceReader()
|
|
126
|
+
external
|
|
127
|
+
restricted()
|
|
128
|
+
onlyOwner()
|
|
129
|
+
{
|
|
130
|
+
_instanceService.upgradeInstanceReader();
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
|
|
97
134
|
//--- ProductRegistration ----------------------------------------------//
|
|
98
135
|
|
|
99
|
-
function registerProduct(address product)
|
|
136
|
+
function registerProduct(address product, address token)
|
|
100
137
|
external
|
|
138
|
+
restricted()
|
|
101
139
|
onlyOwner()
|
|
102
140
|
returns (NftId productNftId)
|
|
103
141
|
{
|
|
104
|
-
productNftId = _componentService.registerProduct(product);
|
|
142
|
+
productNftId = _componentService.registerProduct(product, token);
|
|
105
143
|
_products.push(productNftId);
|
|
106
144
|
}
|
|
107
145
|
|
|
@@ -109,6 +147,7 @@ contract Instance is
|
|
|
109
147
|
|
|
110
148
|
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
|
111
149
|
external
|
|
150
|
+
restricted()
|
|
112
151
|
onlyOwner()
|
|
113
152
|
{
|
|
114
153
|
_instanceService.setStakingLockingPeriod(stakeLockingPeriod);
|
|
@@ -116,87 +155,138 @@ contract Instance is
|
|
|
116
155
|
|
|
117
156
|
function setStakingRewardRate(UFixed rewardRate)
|
|
118
157
|
external
|
|
158
|
+
restricted()
|
|
119
159
|
onlyOwner()
|
|
120
160
|
{
|
|
121
161
|
_instanceService.setStakingRewardRate(rewardRate);
|
|
122
162
|
}
|
|
123
163
|
|
|
164
|
+
function setStakingMaxAmount(Amount maxStakedAmount)
|
|
165
|
+
external
|
|
166
|
+
restricted()
|
|
167
|
+
onlyOwner()
|
|
168
|
+
{
|
|
169
|
+
_instanceService.setStakingMaxAmount(maxStakedAmount);
|
|
170
|
+
}
|
|
171
|
+
|
|
124
172
|
function refillStakingRewardReserves(Amount dipAmount)
|
|
125
173
|
external
|
|
174
|
+
restricted()
|
|
126
175
|
onlyOwner()
|
|
176
|
+
returns (Amount newRewardReserveBalance)
|
|
127
177
|
{
|
|
128
178
|
address instanceOwner = msg.sender;
|
|
129
|
-
_instanceService.
|
|
179
|
+
return _instanceService.refillInstanceRewardReserves(instanceOwner, dipAmount);
|
|
130
180
|
}
|
|
131
181
|
|
|
132
182
|
function withdrawStakingRewardReserves(Amount dipAmount)
|
|
133
183
|
external
|
|
184
|
+
restricted()
|
|
134
185
|
onlyOwner()
|
|
135
|
-
returns (Amount
|
|
186
|
+
returns (Amount newRewardReserveBalance)
|
|
136
187
|
{
|
|
137
|
-
return _instanceService.
|
|
188
|
+
return _instanceService.withdrawInstanceRewardReserves(dipAmount);
|
|
138
189
|
}
|
|
139
190
|
|
|
140
191
|
//--- Roles ------------------------------------------------------------//
|
|
141
192
|
|
|
142
|
-
|
|
193
|
+
/// @inheritdoc IInstance
|
|
194
|
+
function createRole(
|
|
195
|
+
string memory roleName,
|
|
196
|
+
RoleId adminRoleId,
|
|
197
|
+
uint32 maxMemberCount
|
|
198
|
+
)
|
|
143
199
|
external
|
|
200
|
+
restricted()
|
|
144
201
|
onlyOwner()
|
|
145
|
-
returns (RoleId roleId
|
|
202
|
+
returns (RoleId roleId)
|
|
146
203
|
{
|
|
147
|
-
|
|
148
|
-
|
|
204
|
+
roleId = _instanceService.createRole(roleName, adminRoleId, maxMemberCount);
|
|
205
|
+
emit LogInstanceCustomRoleCreated(roleId, roleName, adminRoleId, maxMemberCount);
|
|
149
206
|
}
|
|
150
207
|
|
|
208
|
+
|
|
209
|
+
/// @inheritdoc IInstance
|
|
210
|
+
function setRoleActive(RoleId roleId, bool active)
|
|
211
|
+
external
|
|
212
|
+
restricted()
|
|
213
|
+
onlyCustomRoleAdmin(roleId)
|
|
214
|
+
{
|
|
215
|
+
_instanceService.setRoleActive(roleId, active);
|
|
216
|
+
emit LogInstanceCustomRoleActiveSet(roleId, active, msg.sender);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
/// @inheritdoc IInstance
|
|
151
221
|
function grantRole(RoleId roleId, address account)
|
|
152
222
|
external
|
|
153
|
-
|
|
223
|
+
restricted()
|
|
224
|
+
onlyCustomRoleAdmin(roleId)
|
|
154
225
|
{
|
|
155
|
-
|
|
226
|
+
_instanceService.grantRole(roleId, account);
|
|
227
|
+
emit LogInstanceCustomRoleGranted(roleId, account, msg.sender);
|
|
156
228
|
}
|
|
157
229
|
|
|
230
|
+
|
|
231
|
+
/// @inheritdoc IInstance
|
|
158
232
|
function revokeRole(RoleId roleId, address account)
|
|
159
233
|
external
|
|
160
|
-
|
|
234
|
+
restricted()
|
|
235
|
+
onlyCustomRoleAdmin(roleId)
|
|
161
236
|
{
|
|
162
|
-
|
|
163
|
-
|
|
237
|
+
_instanceService.revokeRole(roleId, account);
|
|
238
|
+
emit LogInstanceCustomRoleRevoked(roleId, account, msg.sender);
|
|
164
239
|
}
|
|
165
240
|
|
|
166
241
|
//--- Targets ------------------------------------------------------------//
|
|
167
242
|
|
|
243
|
+
/// @inheritdoc IInstance
|
|
168
244
|
function createTarget(address target, string memory name)
|
|
169
245
|
external
|
|
246
|
+
restricted()
|
|
170
247
|
onlyOwner()
|
|
248
|
+
returns (RoleId targetRoleId)
|
|
171
249
|
{
|
|
172
|
-
|
|
173
|
-
|
|
250
|
+
targetRoleId = _instanceService.createTarget(target, name);
|
|
251
|
+
emit LogInstanceCustomTargetCreated(target, targetRoleId, name);
|
|
174
252
|
}
|
|
175
253
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
RoleId roleId
|
|
180
|
-
)
|
|
254
|
+
|
|
255
|
+
/// @inheritdoc IInstance
|
|
256
|
+
function setTargetLocked(address target, bool locked)
|
|
181
257
|
external
|
|
258
|
+
// not restricted(): instance owner may need to be able to unlock targets on an locked instance
|
|
182
259
|
onlyOwner()
|
|
183
260
|
{
|
|
184
|
-
|
|
185
|
-
|
|
261
|
+
_instanceService.setTargetLocked(target, locked);
|
|
262
|
+
emit LogInstanceTargetLocked(target, locked);
|
|
186
263
|
}
|
|
187
264
|
|
|
188
|
-
|
|
265
|
+
|
|
266
|
+
/// @inheritdoc IInstance
|
|
267
|
+
function authorizeFunctions(
|
|
268
|
+
address target,
|
|
269
|
+
RoleId roleId,
|
|
270
|
+
IAccess.FunctionInfo[] memory functions
|
|
271
|
+
)
|
|
189
272
|
external
|
|
273
|
+
restricted()
|
|
190
274
|
onlyOwner()
|
|
191
275
|
{
|
|
192
|
-
|
|
276
|
+
_instanceService.authorizeFunctions(target, roleId, functions);
|
|
193
277
|
}
|
|
194
278
|
|
|
195
|
-
//--- ITransferInterceptor ----------------------------------------------//
|
|
196
279
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
280
|
+
/// @inheritdoc IInstance
|
|
281
|
+
function unauthorizeFunctions(
|
|
282
|
+
address target,
|
|
283
|
+
IAccess.FunctionInfo[] memory functions
|
|
284
|
+
)
|
|
285
|
+
external
|
|
286
|
+
restricted()
|
|
287
|
+
onlyOwner()
|
|
288
|
+
{
|
|
289
|
+
_instanceService.unauthorizeFunctions(target, functions);
|
|
200
290
|
}
|
|
201
291
|
|
|
202
292
|
//--- initial setup functions -------------------------------------------//
|
|
@@ -215,6 +305,14 @@ contract Instance is
|
|
|
215
305
|
|
|
216
306
|
//--- external view functions -------------------------------------------//
|
|
217
307
|
|
|
308
|
+
function isInstanceLocked() external view returns (bool) {
|
|
309
|
+
return _instanceAdmin.isLocked();
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
function isTargetLocked(address target) external view returns (bool) {
|
|
313
|
+
return _instanceAdmin.isTargetLocked(target);
|
|
314
|
+
}
|
|
315
|
+
|
|
218
316
|
function products() external view returns (uint256 productCount) {
|
|
219
317
|
return _products.length;
|
|
220
318
|
}
|
|
@@ -243,5 +341,11 @@ contract Instance is
|
|
|
243
341
|
return _instanceStore;
|
|
244
342
|
}
|
|
245
343
|
|
|
246
|
-
|
|
344
|
+
function getProductStore() external view returns (ProductStore) {
|
|
345
|
+
return _productStore;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
function isTokenRegistryDisabled() external view returns (bool) {
|
|
349
|
+
return _tokenRegistryDisabled;
|
|
350
|
+
}
|
|
247
351
|
}
|