@etherisc/gif-next 0.0.2-f15b559-661 → 0.0.2-f1b01e0-214
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 +43 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +38 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +26 -26
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +6 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +366 -251
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -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 +101 -28
- 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 +283 -189
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +37 -5
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +32 -145
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +101 -46
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1 -87
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +160 -89
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +56 -52
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +1 -87
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +68 -5
- 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 +44 -74
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +101 -46
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +94 -124
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +101 -46
- 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 +82 -173
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +101 -46
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +20 -63
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +69 -112
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +101 -46
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +95 -138
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +101 -46
- 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/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +104 -8
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +62 -13
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +119 -26
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +520 -413
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +101 -46
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +225 -196
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +94 -65
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +26 -36
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +356 -346
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/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 +14 -35
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +98 -35
- 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 +0 -21
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +0 -21
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +42 -42
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +31 -31
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +22 -43
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +101 -46
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +64 -64
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +39 -39
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +6 -6
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +10 -31
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +18 -18
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +10 -31
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +34 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +80 -80
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +41 -41
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +90 -24
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +34 -22
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +27 -48
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +101 -46
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +78 -78
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +50 -50
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +42 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +21 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +21 -42
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +21 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +62 -62
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +32 -32
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +41 -41
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +63 -82
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -51
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +21 -42
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +55 -26
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +27 -23
- 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/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- 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 +2 -2
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +445 -355
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +19 -19
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +481 -376
- 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 +128 -124
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +0 -21
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +114 -129
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +45 -49
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +60 -4
- 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/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -21
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +44 -51
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +0 -21
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/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 +0 -21
- 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/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +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 +83 -39
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +75 -4
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +133 -94
- 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 +41 -37
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +34 -61
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +109 -30
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +27 -23
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +148 -134
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +47 -37
- 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/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 +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +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/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +4 -4
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/IAccountingService.sol +2 -2
- package/contracts/authorization/AccessAdmin.sol +201 -186
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +40 -31
- package/contracts/authorization/Authorization.sol +61 -33
- package/contracts/authorization/IAccess.sol +13 -5
- package/contracts/authorization/IAccessAdmin.sol +63 -36
- package/contracts/authorization/IAuthorization.sol +6 -0
- package/contracts/distribution/BasicDistribution.sol +6 -6
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +3 -48
- package/contracts/distribution/DistributionService.sol +57 -30
- package/contracts/distribution/IDistributionComponent.sol +0 -9
- package/contracts/distribution/IDistributionService.sol +4 -2
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +0 -4
- 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 +0 -4
- package/contracts/instance/IInstance.sol +45 -9
- package/contracts/instance/IInstanceService.sol +19 -3
- package/contracts/instance/Instance.sol +73 -16
- package/contracts/instance/InstanceAdmin.sol +120 -107
- package/contracts/instance/InstanceAuthorizationV3.sol +43 -21
- package/contracts/instance/InstanceReader.sol +13 -0
- package/contracts/instance/InstanceService.sol +128 -73
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +16 -5
- 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 +1 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +1 -1
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +0 -2
- package/contracts/pool/BasicPool.sol +0 -2
- package/contracts/pool/BasicPoolAuthorization.sol +1 -1
- package/contracts/pool/Pool.sol +0 -2
- package/contracts/pool/PoolService.sol +1 -3
- package/contracts/product/ApplicationService.sol +21 -6
- package/contracts/product/BasicProduct.sol +0 -2
- package/contracts/product/BasicProductAuthorization.sol +1 -1
- package/contracts/product/IApplicationService.sol +3 -0
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IRiskService.sol +3 -0
- package/contracts/product/PolicyService.sol +0 -18
- package/contracts/product/PricingService.sol +11 -6
- package/contracts/product/Product.sol +0 -2
- package/contracts/product/RiskService.sol +10 -0
- package/contracts/registry/IRegistry.sol +4 -0
- package/contracts/registry/RegistryAdmin.sol +133 -229
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/ReleaseAdmin.sol +30 -22
- package/contracts/registry/ReleaseRegistry.sol +39 -33
- package/contracts/registry/ServiceAuthorizationV3.sol +87 -3
- package/contracts/shared/Component.sol +13 -30
- package/contracts/shared/ComponentService.sol +58 -42
- package/contracts/shared/ContractLib.sol +28 -0
- package/contracts/shared/IComponent.sol +0 -3
- package/contracts/shared/IComponentService.sol +9 -9
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +0 -2
- package/contracts/shared/NftOwnable.sol +1 -1
- package/contracts/shared/Registerable.sol +1 -4
- package/contracts/shared/TokenHandler.sol +5 -4
- package/contracts/staking/IStaking.sol +12 -2
- package/contracts/staking/IStakingService.sol +8 -1
- package/contracts/staking/Staking.sol +35 -15
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +79 -22
- package/contracts/staking/StakingReader.sol +5 -15
- package/contracts/staking/StakingService.sol +36 -2
- package/contracts/staking/StakingStore.sol +2 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/ObjectType.sol +5 -14
- package/contracts/type/UFixed.sol +27 -10
- package/contracts/type/Version.sol +39 -0
- package/package.json +2 -2
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
@@ -7,6 +7,9 @@ import {Amount} from "../../type/Amount.sol";
|
|
7
7
|
import {BasicDistribution} from "../../distribution/BasicDistribution.sol";
|
8
8
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
9
9
|
import {NftId} from "../../type/NftId.sol";
|
10
|
+
import {ReferralId} from "../../type/Referral.sol";
|
11
|
+
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
12
|
+
import {UFixed, UFixedLib} from "../../type/UFixed.sol";
|
10
13
|
|
11
14
|
|
12
15
|
contract SimpleDistribution is
|
@@ -17,8 +20,7 @@ contract SimpleDistribution is
|
|
17
20
|
address registry,
|
18
21
|
NftId productNftId,
|
19
22
|
IAuthorization authorization,
|
20
|
-
address initialOwner
|
21
|
-
address token
|
23
|
+
address initialOwner
|
22
24
|
)
|
23
25
|
{
|
24
26
|
initialize(
|
@@ -26,8 +28,7 @@ contract SimpleDistribution is
|
|
26
28
|
productNftId,
|
27
29
|
authorization,
|
28
30
|
initialOwner,
|
29
|
-
"SimpleDistribution"
|
30
|
-
token);
|
31
|
+
"SimpleDistribution");
|
31
32
|
}
|
32
33
|
|
33
34
|
function initialize(
|
@@ -35,8 +36,7 @@ contract SimpleDistribution is
|
|
35
36
|
NftId productNftId,
|
36
37
|
IAuthorization authorization,
|
37
38
|
address initialOwner,
|
38
|
-
string memory name
|
39
|
-
address token
|
39
|
+
string memory name
|
40
40
|
)
|
41
41
|
public
|
42
42
|
virtual
|
@@ -47,11 +47,35 @@ contract SimpleDistribution is
|
|
47
47
|
productNftId,
|
48
48
|
authorization,
|
49
49
|
initialOwner,
|
50
|
-
name
|
51
|
-
token);
|
50
|
+
name);
|
52
51
|
}
|
53
52
|
|
54
53
|
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
55
54
|
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
56
55
|
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
56
|
+
|
57
|
+
/**
|
58
|
+
* @dev create referral codes. This is required for testing only to provide a distributor that is not the message sender.
|
59
|
+
*/
|
60
|
+
function createReferral2(
|
61
|
+
NftId distributorNftId,
|
62
|
+
string memory code,
|
63
|
+
UFixed discountPercentage,
|
64
|
+
uint32 maxReferrals,
|
65
|
+
Timestamp expiryAt,
|
66
|
+
bytes memory data
|
67
|
+
)
|
68
|
+
external
|
69
|
+
virtual
|
70
|
+
returns (ReferralId referralId)
|
71
|
+
{
|
72
|
+
return _createReferral(
|
73
|
+
distributorNftId,
|
74
|
+
code,
|
75
|
+
discountPercentage,
|
76
|
+
maxReferrals,
|
77
|
+
expiryAt,
|
78
|
+
data); // data
|
79
|
+
}
|
80
|
+
|
57
81
|
}
|
@@ -34,8 +34,7 @@ contract SimpleOracle is
|
|
34
34
|
address registry,
|
35
35
|
NftId productNftId,
|
36
36
|
IAuthorization authorization,
|
37
|
-
address initialOwner
|
38
|
-
address token
|
37
|
+
address initialOwner
|
39
38
|
)
|
40
39
|
{
|
41
40
|
initialize(
|
@@ -43,8 +42,7 @@ contract SimpleOracle is
|
|
43
42
|
productNftId,
|
44
43
|
authorization,
|
45
44
|
initialOwner,
|
46
|
-
"SimpleOracle"
|
47
|
-
token
|
45
|
+
"SimpleOracle"
|
48
46
|
);
|
49
47
|
}
|
50
48
|
|
@@ -53,8 +51,7 @@ contract SimpleOracle is
|
|
53
51
|
NftId productNftId,
|
54
52
|
IAuthorization authorization,
|
55
53
|
address initialOwner,
|
56
|
-
string memory name
|
57
|
-
address token
|
54
|
+
string memory name
|
58
55
|
)
|
59
56
|
public
|
60
57
|
virtual
|
@@ -65,8 +62,7 @@ contract SimpleOracle is
|
|
65
62
|
productNftId,
|
66
63
|
authorization,
|
67
64
|
initialOwner,
|
68
|
-
name
|
69
|
-
token);
|
65
|
+
name);
|
70
66
|
}
|
71
67
|
|
72
68
|
/// @dev use case specific handling of oracle requests
|
@@ -19,7 +19,6 @@ contract SimplePool is
|
|
19
19
|
constructor(
|
20
20
|
address registry,
|
21
21
|
NftId productNftId,
|
22
|
-
address token,
|
23
22
|
IComponents.PoolInfo memory poolInfo,
|
24
23
|
IAuthorization authorization,
|
25
24
|
address initialOwner
|
@@ -28,7 +27,6 @@ contract SimplePool is
|
|
28
27
|
initialize(
|
29
28
|
registry,
|
30
29
|
productNftId,
|
31
|
-
token,
|
32
30
|
poolInfo,
|
33
31
|
authorization,
|
34
32
|
initialOwner
|
@@ -39,7 +37,6 @@ contract SimplePool is
|
|
39
37
|
function initialize(
|
40
38
|
address registry,
|
41
39
|
NftId productNftId,
|
42
|
-
address token,
|
43
40
|
IComponents.PoolInfo memory poolInfo,
|
44
41
|
IAuthorization authorization,
|
45
42
|
address initialOwner
|
@@ -52,7 +49,6 @@ contract SimplePool is
|
|
52
49
|
registry,
|
53
50
|
productNftId,
|
54
51
|
"SimplePool",
|
55
|
-
token,
|
56
52
|
poolInfo,
|
57
53
|
authorization,
|
58
54
|
initialOwner);
|
@@ -37,7 +37,6 @@ contract SimpleProduct is
|
|
37
37
|
address registry,
|
38
38
|
NftId instanceNftId,
|
39
39
|
string memory name,
|
40
|
-
address token,
|
41
40
|
IComponents.ProductInfo memory productInfo,
|
42
41
|
IComponents.FeeInfo memory feeInfo,
|
43
42
|
IAuthorization authorization,
|
@@ -48,7 +47,6 @@ contract SimpleProduct is
|
|
48
47
|
registry,
|
49
48
|
instanceNftId,
|
50
49
|
name,
|
51
|
-
token,
|
52
50
|
productInfo,
|
53
51
|
feeInfo,
|
54
52
|
authorization,
|
@@ -60,7 +58,6 @@ contract SimpleProduct is
|
|
60
58
|
address registry,
|
61
59
|
NftId instanceNftid,
|
62
60
|
string memory name,
|
63
|
-
address token,
|
64
61
|
IComponents.ProductInfo memory productInfo,
|
65
62
|
IComponents.FeeInfo memory feeInfo,
|
66
63
|
IAuthorization authorization,
|
@@ -74,7 +71,6 @@ contract SimpleProduct is
|
|
74
71
|
registry,
|
75
72
|
instanceNftid,
|
76
73
|
name,
|
77
|
-
token,
|
78
74
|
productInfo,
|
79
75
|
feeInfo,
|
80
76
|
authorization,
|
@@ -18,7 +18,7 @@ interface IInstance is
|
|
18
18
|
IRegisterable
|
19
19
|
{
|
20
20
|
error ErrorInstanceInstanceAdminZero();
|
21
|
-
error ErrorInstanceInstanceAdminAlreadySet(address
|
21
|
+
error ErrorInstanceInstanceAdminAlreadySet(address instanceAdmin);
|
22
22
|
error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
|
23
23
|
|
24
24
|
error ErrorInstanceBundleSetAlreadySet(address instanceBundleSet);
|
@@ -38,8 +38,44 @@ interface IInstance is
|
|
38
38
|
uint64 requestsCount;
|
39
39
|
}
|
40
40
|
|
41
|
+
///--- instance ---------------------------------------------------------//
|
42
|
+
|
43
|
+
/// @dev Locks/unlocks the complete instance, including all its components.
|
44
|
+
function setInstanceLocked(bool locked) external;
|
45
|
+
|
46
|
+
/// @dev Upgrades the instance reader to the specified target.
|
47
|
+
function upgradeInstanceReader() external;
|
48
|
+
|
49
|
+
/// @dev Sets the instance reader for the instance.
|
50
|
+
/// Permissioned: only the instance service may call this function.
|
51
|
+
function setInstanceReader(InstanceReader instanceReader) external;
|
52
|
+
|
53
|
+
///--- staking ----------------------------------------------------------//
|
54
|
+
|
55
|
+
/// @dev Sets the duration for locking new stakes on this instance..
|
56
|
+
function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
|
57
|
+
|
58
|
+
/// @dev Sets the staking reward rate [apr] for this instance.
|
59
|
+
function setStakingRewardRate(UFixed rewardRate) external;
|
60
|
+
|
61
|
+
/// @dev Sets the maximum staked amount for this instance.
|
62
|
+
function setStakingMaxAmount(Amount maxStakedAmount) external;
|
63
|
+
|
64
|
+
/// @dev Refills the staking reward reserves for the specified target.
|
65
|
+
function refillStakingRewardReserves(Amount dipAmount) external;
|
66
|
+
|
67
|
+
/// @dev Defunds the staking reward reserves for the specified target.
|
68
|
+
function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
|
69
|
+
|
70
|
+
///--- product/component ------------------------------------------------//
|
71
|
+
|
72
|
+
/// @dev Locks/unlocks the specified target.
|
73
|
+
function setTargetLocked(address target, bool locked) external;
|
74
|
+
|
41
75
|
/// @dev Register a product with the instance.
|
42
|
-
function registerProduct(address product) external returns (NftId productNftId);
|
76
|
+
function registerProduct(address product, address token) external returns (NftId productNftId);
|
77
|
+
|
78
|
+
///--- authz ------------------------------------------------------------//
|
43
79
|
|
44
80
|
function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
|
45
81
|
function grantRole(RoleId roleId, address account) external;
|
@@ -47,15 +83,14 @@ interface IInstance is
|
|
47
83
|
|
48
84
|
function createTarget(address target, string memory name) external;
|
49
85
|
function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
|
50
|
-
function setLocked(address target, bool locked) external;
|
51
86
|
|
52
|
-
|
53
|
-
function setStakingRewardRate(UFixed rewardRate) external;
|
54
|
-
function refillStakingRewardReserves(Amount dipAmount) external;
|
87
|
+
//--- getters -----------------------------------------------------------//
|
55
88
|
|
56
|
-
/// @dev
|
57
|
-
|
58
|
-
|
89
|
+
/// @dev returns the overall locking state of the instance (including all components)
|
90
|
+
function isInstanceLocked() external view returns (bool isLocked);
|
91
|
+
|
92
|
+
/// @dev returns the locking state of the specified target
|
93
|
+
function isTargetLocked(address target) external view returns (bool isLocked);
|
59
94
|
|
60
95
|
// get products
|
61
96
|
function products() external view returns (uint256 productCount);
|
@@ -67,4 +102,5 @@ interface IInstance is
|
|
67
102
|
function getRiskSet() external view returns (RiskSet);
|
68
103
|
function getInstanceAdmin() external view returns (InstanceAdmin);
|
69
104
|
function getInstanceStore() external view returns (InstanceStore);
|
105
|
+
function isTokenRegistryDisabled() external view returns (bool);
|
70
106
|
}
|
@@ -15,7 +15,7 @@ interface IInstanceService is IService {
|
|
15
15
|
// onlyInstance
|
16
16
|
error ErrorInstanceServiceNotRegistered(address instance);
|
17
17
|
error ErrorInstanceServiceNotInstance(address instance, ObjectType objectType);
|
18
|
-
error ErrorInstanceServiceInstanceVersionMismatch(
|
18
|
+
error ErrorInstanceServiceInstanceVersionMismatch(NftId instanceNftId, VersionPart expectedRelease, VersionPart instanceRelease);
|
19
19
|
|
20
20
|
error ErrorInstanceServiceComponentNotInstanceLinked(address component);
|
21
21
|
|
@@ -53,18 +53,34 @@ interface IInstanceService is IService {
|
|
53
53
|
|
54
54
|
event LogInstanceCloned(NftId instanceNftId, address instance);
|
55
55
|
|
56
|
-
|
56
|
+
/// @dev Locks the complete instance, including all its components.
|
57
|
+
function setInstanceLocked(bool locked) external;
|
58
|
+
|
59
|
+
/// @dev Locks/unlocks the specified target constrolled by the corresponding instance admin.
|
60
|
+
function setTargetLocked(address target, bool locked) external;
|
61
|
+
|
62
|
+
/// @dev Creates a new instance.
|
63
|
+
/// The caller becomes the owner of the new instance.
|
64
|
+
/// Creation of a new instance is achieved by this service through the creation and registration
|
65
|
+
/// of a new clone of the master instance and then setting up the initial wiring and authorization
|
66
|
+
/// of the necessary components.
|
67
|
+
/// @param allowAnyToken specifies whether the new instance is allowed to use any token or
|
68
|
+
/// only tokens that are registered in the `TokenRegistry`. Use of tokens **not** registered in the
|
69
|
+
/// `TokenRegistry` may result in problems with token handline and is therefor not recommended. The
|
70
|
+
/// use of such instances **is not supported** by Etherisc.
|
71
|
+
function createInstance(bool allowAnyToken)
|
57
72
|
external
|
58
73
|
returns (
|
59
74
|
IInstance instance,
|
60
75
|
NftId instanceNftId
|
61
76
|
);
|
62
77
|
|
63
|
-
function upgradeInstanceReader(
|
78
|
+
function upgradeInstanceReader() external;
|
64
79
|
function upgradeMasterInstanceReader(address instanceReaderAddress) external;
|
65
80
|
|
66
81
|
function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
|
67
82
|
function setStakingRewardRate(UFixed rewardRate) external;
|
83
|
+
function setStakingMaxAmount(Amount maxStakedAmount) external;
|
68
84
|
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount) external;
|
69
85
|
|
70
86
|
/// @dev Defunds the staking reward reserves for the specified target.
|
@@ -1,22 +1,24 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IInstance} from "./IInstance.sol";
|
5
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
6
|
+
import {IInstanceService} from "./IInstanceService.sol";
|
7
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
8
|
+
|
4
9
|
import {Amount} from "../type/Amount.sol";
|
5
10
|
import {BundleSet} from "./BundleSet.sol";
|
6
11
|
import {RiskSet} from "./RiskSet.sol";
|
7
12
|
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
13
|
import {InstanceReader} from "./InstanceReader.sol";
|
12
14
|
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
13
15
|
import {InstanceStore} from "./InstanceStore.sol";
|
14
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
15
16
|
import {NftId} from "../type/NftId.sol";
|
16
17
|
import {Registerable} from "../shared/Registerable.sol";
|
17
18
|
import {RoleId} from "../type/RoleId.sol";
|
18
19
|
import {Seconds} from "../type/Seconds.sol";
|
19
20
|
import {UFixed} from "../type/UFixed.sol";
|
21
|
+
import {VersionPart} from "../type/Version.sol";
|
20
22
|
|
21
23
|
contract Instance is
|
22
24
|
IInstance,
|
@@ -33,6 +35,7 @@ contract Instance is
|
|
33
35
|
RiskSet internal _riskSet;
|
34
36
|
InstanceStore internal _instanceStore;
|
35
37
|
NftId [] internal _products;
|
38
|
+
bool internal _tokenRegistryDisabled;
|
36
39
|
|
37
40
|
modifier onlyChainNft() {
|
38
41
|
if(msg.sender != getRegistry().getChainNftAddress()) {
|
@@ -48,7 +51,9 @@ contract Instance is
|
|
48
51
|
RiskSet riskSet,
|
49
52
|
InstanceReader instanceReader,
|
50
53
|
IRegistry registry,
|
51
|
-
|
54
|
+
VersionPart release,
|
55
|
+
address initialOwner,
|
56
|
+
bool tokenRegistryDisabled
|
52
57
|
)
|
53
58
|
external
|
54
59
|
initializer()
|
@@ -84,24 +89,46 @@ contract Instance is
|
|
84
89
|
_componentService = IComponentService(
|
85
90
|
getRegistry().getServiceAddress(
|
86
91
|
COMPONENT(),
|
87
|
-
|
92
|
+
release));
|
88
93
|
|
89
94
|
_instanceService = IInstanceService(
|
90
95
|
getRegistry().getServiceAddress(
|
91
96
|
INSTANCE(),
|
92
|
-
|
97
|
+
release));
|
98
|
+
|
99
|
+
_tokenRegistryDisabled = tokenRegistryDisabled;
|
93
100
|
|
94
101
|
_registerInterface(type(IInstance).interfaceId);
|
95
102
|
}
|
96
103
|
|
104
|
+
|
105
|
+
function setInstanceLocked(bool locked)
|
106
|
+
external
|
107
|
+
// not restricted(): need to be able to unlock a locked instance
|
108
|
+
onlyOwner()
|
109
|
+
{
|
110
|
+
_instanceService.setInstanceLocked(locked);
|
111
|
+
}
|
112
|
+
|
113
|
+
|
114
|
+
function upgradeInstanceReader()
|
115
|
+
external
|
116
|
+
restricted()
|
117
|
+
onlyOwner()
|
118
|
+
{
|
119
|
+
_instanceService.upgradeInstanceReader();
|
120
|
+
}
|
121
|
+
|
122
|
+
|
97
123
|
//--- ProductRegistration ----------------------------------------------//
|
98
124
|
|
99
|
-
function registerProduct(address product)
|
125
|
+
function registerProduct(address product, address token)
|
100
126
|
external
|
127
|
+
restricted()
|
101
128
|
onlyOwner()
|
102
129
|
returns (NftId productNftId)
|
103
130
|
{
|
104
|
-
productNftId = _componentService.registerProduct(product);
|
131
|
+
productNftId = _componentService.registerProduct(product, token);
|
105
132
|
_products.push(productNftId);
|
106
133
|
}
|
107
134
|
|
@@ -109,6 +136,7 @@ contract Instance is
|
|
109
136
|
|
110
137
|
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
111
138
|
external
|
139
|
+
restricted()
|
112
140
|
onlyOwner()
|
113
141
|
{
|
114
142
|
_instanceService.setStakingLockingPeriod(stakeLockingPeriod);
|
@@ -116,13 +144,22 @@ contract Instance is
|
|
116
144
|
|
117
145
|
function setStakingRewardRate(UFixed rewardRate)
|
118
146
|
external
|
147
|
+
restricted()
|
119
148
|
onlyOwner()
|
120
149
|
{
|
121
150
|
_instanceService.setStakingRewardRate(rewardRate);
|
122
151
|
}
|
123
152
|
|
153
|
+
function setStakingMaxAmount(Amount maxStakedAmount)
|
154
|
+
external
|
155
|
+
onlyOwner()
|
156
|
+
{
|
157
|
+
_instanceService.setStakingMaxAmount(maxStakedAmount);
|
158
|
+
}
|
159
|
+
|
124
160
|
function refillStakingRewardReserves(Amount dipAmount)
|
125
161
|
external
|
162
|
+
restricted()
|
126
163
|
onlyOwner()
|
127
164
|
{
|
128
165
|
address instanceOwner = msg.sender;
|
@@ -131,6 +168,7 @@ contract Instance is
|
|
131
168
|
|
132
169
|
function withdrawStakingRewardReserves(Amount dipAmount)
|
133
170
|
external
|
171
|
+
restricted()
|
134
172
|
onlyOwner()
|
135
173
|
returns (Amount newBalance)
|
136
174
|
{
|
@@ -141,6 +179,7 @@ contract Instance is
|
|
141
179
|
|
142
180
|
function createRole(string memory roleName, string memory adminName)
|
143
181
|
external
|
182
|
+
restricted()
|
144
183
|
onlyOwner()
|
145
184
|
returns (RoleId roleId, RoleId admin)
|
146
185
|
{
|
@@ -150,6 +189,7 @@ contract Instance is
|
|
150
189
|
|
151
190
|
function grantRole(RoleId roleId, address account)
|
152
191
|
external
|
192
|
+
restricted()
|
153
193
|
onlyOwner()
|
154
194
|
{
|
155
195
|
_instanceAdmin.grantRole(roleId, account);
|
@@ -157,6 +197,7 @@ contract Instance is
|
|
157
197
|
|
158
198
|
function revokeRole(RoleId roleId, address account)
|
159
199
|
external
|
200
|
+
restricted()
|
160
201
|
onlyOwner()
|
161
202
|
{
|
162
203
|
// TODO refactor
|
@@ -165,8 +206,18 @@ contract Instance is
|
|
165
206
|
|
166
207
|
//--- Targets ------------------------------------------------------------//
|
167
208
|
|
209
|
+
|
210
|
+
function setTargetLocked(address target, bool locked)
|
211
|
+
external
|
212
|
+
// not restricted(): instance owner may need to be able to unlock targets on an locked instance
|
213
|
+
onlyOwner()
|
214
|
+
{
|
215
|
+
_instanceService.setTargetLocked(target, locked);
|
216
|
+
}
|
217
|
+
|
168
218
|
function createTarget(address target, string memory name)
|
169
219
|
external
|
220
|
+
restricted()
|
170
221
|
onlyOwner()
|
171
222
|
{
|
172
223
|
// TODO refactor
|
@@ -179,19 +230,13 @@ contract Instance is
|
|
179
230
|
RoleId roleId
|
180
231
|
)
|
181
232
|
external
|
233
|
+
restricted()
|
182
234
|
onlyOwner()
|
183
235
|
{
|
184
236
|
// TODO refactor
|
185
237
|
// _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
|
186
238
|
}
|
187
239
|
|
188
|
-
function setLocked(address target, bool locked)
|
189
|
-
external
|
190
|
-
onlyOwner()
|
191
|
-
{
|
192
|
-
_componentService.setLockedFromInstance(target, locked);
|
193
|
-
}
|
194
|
-
|
195
240
|
//--- ITransferInterceptor ----------------------------------------------//
|
196
241
|
|
197
242
|
function nftTransferFrom(address from, address to, uint256 tokenId, address operator) external onlyChainNft {
|
@@ -215,6 +260,14 @@ contract Instance is
|
|
215
260
|
|
216
261
|
//--- external view functions -------------------------------------------//
|
217
262
|
|
263
|
+
function isInstanceLocked() external view returns (bool) {
|
264
|
+
return _instanceAdmin.isLocked();
|
265
|
+
}
|
266
|
+
|
267
|
+
function isTargetLocked(address target) external view returns (bool) {
|
268
|
+
return _instanceAdmin.isTargetLocked(target);
|
269
|
+
}
|
270
|
+
|
218
271
|
function products() external view returns (uint256 productCount) {
|
219
272
|
return _products.length;
|
220
273
|
}
|
@@ -243,5 +296,9 @@ contract Instance is
|
|
243
296
|
return _instanceStore;
|
244
297
|
}
|
245
298
|
|
299
|
+
function isTokenRegistryDisabled() external view returns (bool) {
|
300
|
+
return _tokenRegistryDisabled;
|
301
|
+
}
|
302
|
+
|
246
303
|
//--- internal view/pure functions --------------------------------------//
|
247
304
|
}
|