@etherisc/gif-next 0.0.2-fd4931b-974 → 0.0.2-fd5f17a-625
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 +51 -5
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1342 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +65 -463
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +291 -234
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +88 -100
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +102 -165
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +171 -47
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +77 -78
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +149 -52
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +75 -205
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +410 -130
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +191 -206
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +60 -92
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +387 -268
- 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/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- 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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +871 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +922 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +679 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1248 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +440 -169
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +132 -84
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +225 -2
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +56 -295
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +255 -101
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +102 -627
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +309 -251
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +57 -81
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +72 -160
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +55 -87
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1096 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +229 -168
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +82 -94
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +25 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +134 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +204 -120
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +63 -44
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +43 -84
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +22 -3
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +273 -301
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +77 -93
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +134 -243
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +70 -110
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +53 -390
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +583 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +651 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +302 -61
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -184
- 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 +645 -123
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1861 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +66 -124
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +46 -81
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +46 -177
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +18 -223
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +271 -164
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +83 -95
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +14 -107
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +11 -31
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +180 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +43 -42
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -15
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +0 -42
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +50 -287
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -99
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +10 -55
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +4 -136
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +11 -94
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +14 -107
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +273 -605
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +471 -62
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +332 -1004
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +73 -203
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +368 -39
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +484 -213
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +57 -84
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +318 -19
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +97 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +40 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- 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/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +28 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +100 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
- 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 +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +566 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +589 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +217 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +146 -114
- package/contracts/distribution/DistributionService.sol +84 -46
- package/contracts/distribution/DistributionServiceManager.sol +2 -17
- package/contracts/distribution/IDistributionComponent.sol +26 -40
- package/contracts/distribution/IDistributionService.sol +24 -4
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +29 -43
- package/contracts/instance/IInstanceService.sol +36 -27
- package/contracts/instance/Instance.sol +117 -116
- package/contracts/instance/InstanceAdmin.sol +285 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +82 -18
- package/contracts/instance/InstanceService.sol +206 -106
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +49 -22
- package/contracts/instance/base/BalanceStore.sol +11 -6
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +1 -7
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +22 -22
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +167 -0
- package/contracts/oracle/OracleService.sol +279 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +211 -69
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +34 -6
- package/contracts/pool/IPoolComponent.sol +6 -60
- package/contracts/pool/IPoolService.sol +40 -27
- package/contracts/pool/Pool.sol +165 -138
- package/contracts/pool/PoolService.sol +199 -114
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +59 -65
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +132 -82
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IApplicationService.sol +2 -1
- package/contracts/product/IClaimService.sol +32 -3
- package/contracts/product/IPolicyService.sol +28 -33
- package/contracts/product/IPricingService.sol +8 -8
- package/contracts/product/IProductComponent.sol +7 -10
- package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -2
- package/contracts/product/PolicyService.sol +289 -189
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +52 -52
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +163 -115
- package/contracts/product/{ProductService.sol → RiskService.sol} +18 -45
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +65 -31
- package/contracts/registry/IRegistry.sol +79 -29
- package/contracts/registry/IRegistryService.sol +7 -6
- package/contracts/registry/Registry.sol +354 -215
- package/contracts/registry/RegistryAdmin.sol +464 -0
- package/contracts/registry/RegistryService.sol +14 -90
- package/contracts/registry/RegistryServiceManager.sol +3 -22
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +491 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
- package/contracts/registry/TokenRegistry.sol +58 -62
- package/contracts/shared/Component.sol +35 -53
- package/contracts/shared/ComponentService.sol +127 -81
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +14 -8
- package/contracts/shared/IComponent.sol +7 -11
- package/contracts/shared/IComponentService.sol +26 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -7
- package/contracts/shared/IKeyValueStore.sol +2 -1
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +0 -9
- package/contracts/shared/IService.sol +9 -2
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
- package/contracts/shared/InstanceLinkedComponent.sol +51 -24
- package/contracts/shared/KeyValueStore.sol +7 -6
- package/contracts/shared/Lifecycle.sol +16 -60
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +3 -7
- package/contracts/shared/NftOwnable.sol +9 -20
- package/contracts/shared/PolicyHolder.sol +8 -53
- package/contracts/shared/Registerable.sol +4 -4
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +33 -28
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +96 -41
- package/contracts/staking/IStakingService.sol +78 -40
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +305 -155
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +21 -23
- package/contracts/staking/StakingReader.sol +119 -28
- package/contracts/staking/StakingService.sol +190 -77
- package/contracts/staking/StakingServiceManager.sol +4 -4
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +83 -13
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +24 -3
- package/contracts/type/Blocknumber.sol +20 -2
- package/contracts/type/Fee.sol +1 -1
- package/contracts/type/NftId.sol +9 -9
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +174 -68
- package/contracts/type/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +104 -73
- package/contracts/type/Seconds.sol +39 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +13 -0
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +17 -3
- package/contracts/type/UFixed.sol +34 -9
- package/contracts/type/Version.sol +4 -2
- package/contracts/{shared → upgradeability}/ProxyManager.sol +9 -6
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +8 -5
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -132
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -673
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -675
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -298
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1112
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -314
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -598
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -336
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/RegistryAccessManager.sol +0 -167
- package/contracts/registry/ReleaseManager.sol +0 -530
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -4,19 +4,20 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
5
|
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
6
|
|
7
|
-
import {
|
7
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
9
|
+
import {BundleSet} from "./BundleSet.sol";
|
8
10
|
import {ChainNft} from "../registry/ChainNft.sol";
|
9
11
|
import {NftId} from "../type/NftId.sol";
|
10
12
|
import {RoleId} from "../type/RoleId.sol";
|
11
13
|
import {SecondsLib} from "../type/Seconds.sol";
|
12
|
-
import {UFixedLib} from "../type/UFixed.sol";
|
13
|
-
import {ADMIN_ROLE,
|
14
|
-
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
14
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
15
|
+
import {ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
16
|
+
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
15
17
|
|
16
18
|
import {Service} from "../shared/Service.sol";
|
17
19
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
18
20
|
import {IService} from "../shared/IService.sol";
|
19
|
-
import {AccessManagerUpgradeableInitializeable} from "../shared/AccessManagerUpgradeableInitializeable.sol";
|
20
21
|
|
21
22
|
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
22
23
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
@@ -28,12 +29,15 @@ import {IStakingService} from "../staking/IStakingService.sol";
|
|
28
29
|
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
29
30
|
|
30
31
|
import {Instance} from "./Instance.sol";
|
32
|
+
import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
|
31
33
|
import {IInstance} from "./IInstance.sol";
|
32
|
-
import {
|
34
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
33
35
|
import {IInstanceService} from "./IInstanceService.sol";
|
34
36
|
import {InstanceReader} from "./InstanceReader.sol";
|
35
37
|
import {InstanceStore} from "./InstanceStore.sol";
|
36
|
-
import {
|
38
|
+
import {Seconds} from "../type/Seconds.sol";
|
39
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
40
|
+
|
37
41
|
|
38
42
|
contract InstanceService is
|
39
43
|
Service,
|
@@ -46,13 +50,35 @@ contract InstanceService is
|
|
46
50
|
IRegistryService internal _registryService;
|
47
51
|
IStakingService internal _stakingService;
|
48
52
|
|
49
|
-
address internal
|
50
|
-
address internal
|
53
|
+
address internal _masterAccessManager;
|
54
|
+
address internal _masterInstanceAdmin;
|
51
55
|
address internal _masterInstance;
|
52
56
|
address internal _masterInstanceReader;
|
53
|
-
address internal
|
57
|
+
address internal _masterInstanceBundleSet;
|
54
58
|
address internal _masterInstanceStore;
|
55
59
|
|
60
|
+
|
61
|
+
modifier onlyInstance() {
|
62
|
+
address instanceAddress = msg.sender;
|
63
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
64
|
+
if (instanceNftId.eqz()) {
|
65
|
+
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
66
|
+
}
|
67
|
+
|
68
|
+
ObjectType objectType = getRegistry().getObjectInfo(instanceNftId).objectType;
|
69
|
+
if (objectType != INSTANCE()) {
|
70
|
+
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
71
|
+
}
|
72
|
+
|
73
|
+
VersionPart instanceVersion = IInstance(instanceAddress).getMajorVersion();
|
74
|
+
if (instanceVersion != getVersion().toMajorPart()) {
|
75
|
+
revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
|
76
|
+
}
|
77
|
+
|
78
|
+
_;
|
79
|
+
}
|
80
|
+
|
81
|
+
|
56
82
|
modifier onlyInstanceOwner(NftId instanceNftId) {
|
57
83
|
if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
|
58
84
|
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
@@ -68,78 +94,86 @@ contract InstanceService is
|
|
68
94
|
_;
|
69
95
|
}
|
70
96
|
|
71
|
-
function
|
97
|
+
function createInstance()
|
72
98
|
external
|
73
99
|
returns (
|
74
100
|
Instance clonedInstance,
|
75
101
|
NftId clonedInstanceNftId
|
76
102
|
)
|
77
103
|
{
|
104
|
+
// tx sender will become instance owner
|
78
105
|
address instanceOwner = msg.sender;
|
79
|
-
AccessManagerUpgradeableInitializeable clonedOzAccessManager = AccessManagerUpgradeableInitializeable(
|
80
|
-
Clones.clone(_masterOzAccessManager));
|
81
|
-
|
82
|
-
// initially grants ADMIN_ROLE to this (being the instance service).
|
83
|
-
// This will allow the instance service to bootstrap the authorizations of the instance.
|
84
|
-
// Instance service will not use oz access manager directlly but through instance access manager instead
|
85
|
-
// Instance service will renounce ADMIN_ROLE when bootstraping is finished
|
86
|
-
clonedOzAccessManager.initialize(address(this));
|
87
|
-
|
88
|
-
clonedInstance = Instance(Clones.clone(_masterInstance));
|
89
|
-
clonedInstance.initialize(
|
90
|
-
address(clonedOzAccessManager),
|
91
|
-
address(getRegistry()),
|
92
|
-
instanceOwner);
|
93
|
-
// initialize and set before instance reader
|
94
|
-
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
95
|
-
clonedInstanceStore.initialize(address(clonedInstance));
|
96
|
-
clonedInstance.setInstanceStore(clonedInstanceStore);
|
97
|
-
|
98
|
-
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
99
|
-
clonedInstanceReader.initialize(address(clonedInstance));
|
100
|
-
clonedInstance.setInstanceReader(clonedInstanceReader);
|
101
|
-
|
102
|
-
BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
|
103
|
-
clonedBundleManager.initialize(address(clonedInstance));
|
104
|
-
clonedInstance.setBundleManager(clonedBundleManager);
|
105
|
-
|
106
|
-
InstanceAccessManager clonedInstanceAccessManager = InstanceAccessManager(Clones.clone(_masterInstanceAccessManager));
|
107
|
-
clonedOzAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAccessManager), 0);
|
108
|
-
clonedInstanceAccessManager.initialize(address(clonedInstance));
|
109
|
-
clonedInstance.setInstanceAccessManager(clonedInstanceAccessManager);
|
110
|
-
|
111
|
-
// TODO amend setters with instance specific , policy manager ...
|
112
|
-
|
113
|
-
// TODO library does external calls -> but it is registry and access manager -> find out is it best practice
|
114
|
-
InstanceAuthorizationsLib.grantInitialAuthorizations(
|
115
|
-
clonedInstanceAccessManager,
|
116
|
-
clonedInstance,
|
117
|
-
clonedBundleManager,
|
118
|
-
clonedInstanceStore,
|
119
|
-
instanceOwner,
|
120
|
-
getRegistry(),
|
121
|
-
getVersion().toMajorPart());
|
122
106
|
|
123
|
-
|
107
|
+
// create instance admin and instance
|
108
|
+
InstanceAdmin instanceAdmin = _createInstanceAdmin();
|
109
|
+
clonedInstance = _createInstance(instanceAdmin, instanceOwner);
|
124
110
|
|
125
|
-
// register
|
126
|
-
|
127
|
-
|
111
|
+
// register cloned instance with registry
|
112
|
+
clonedInstanceNftId = _registryService.registerInstance(
|
113
|
+
clonedInstance, instanceOwner).nftId;
|
128
114
|
|
129
|
-
//
|
115
|
+
// register cloned instance as staking target
|
130
116
|
_stakingService.createInstanceTarget(
|
131
117
|
clonedInstanceNftId,
|
132
118
|
TargetManagerLib.getDefaultLockingPeriod(),
|
133
119
|
TargetManagerLib.getDefaultRewardRate());
|
134
120
|
|
121
|
+
// MUST be set after instance is set up and registered
|
122
|
+
instanceAdmin.initializeInstanceAuthorization(address(clonedInstance));
|
123
|
+
|
135
124
|
emit LogInstanceCloned(
|
136
|
-
|
137
|
-
address(
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
125
|
+
clonedInstanceNftId,
|
126
|
+
address(clonedInstance));
|
127
|
+
}
|
128
|
+
|
129
|
+
|
130
|
+
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
131
|
+
external
|
132
|
+
virtual
|
133
|
+
onlyInstance()
|
134
|
+
{
|
135
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
136
|
+
_stakingService.setInstanceLockingPeriod(
|
137
|
+
instanceNftId,
|
138
|
+
stakeLockingPeriod);
|
139
|
+
}
|
140
|
+
|
141
|
+
|
142
|
+
function setStakingRewardRate(UFixed rewardRate)
|
143
|
+
external
|
144
|
+
virtual
|
145
|
+
onlyInstance()
|
146
|
+
{
|
147
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
148
|
+
_stakingService.setInstanceRewardRate(
|
149
|
+
instanceNftId,
|
150
|
+
rewardRate);
|
151
|
+
}
|
152
|
+
|
153
|
+
|
154
|
+
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
|
155
|
+
external
|
156
|
+
virtual
|
157
|
+
onlyInstance()
|
158
|
+
{
|
159
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
160
|
+
_stakingService.refillInstanceRewardReserves(
|
161
|
+
instanceNftId,
|
162
|
+
rewardProvider,
|
163
|
+
dipAmount);
|
164
|
+
}
|
165
|
+
|
166
|
+
|
167
|
+
function withdrawStakingRewardReserves(Amount dipAmount)
|
168
|
+
external
|
169
|
+
virtual
|
170
|
+
onlyInstance()
|
171
|
+
returns (Amount newBalance)
|
172
|
+
{
|
173
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
174
|
+
_stakingService.withdrawInstanceRewardReserves(
|
175
|
+
instanceNftId,
|
176
|
+
dipAmount);
|
143
177
|
}
|
144
178
|
|
145
179
|
|
@@ -158,18 +192,15 @@ contract InstanceService is
|
|
158
192
|
IRegistry registry = getRegistry();
|
159
193
|
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
160
194
|
|
161
|
-
if (instanceNftId.eqz()) {
|
162
|
-
revert ErrorInstanceServiceComponentNotRegistered(componentAddress);
|
163
|
-
}
|
164
|
-
|
165
195
|
IInstance instance = IInstance(
|
166
196
|
registry.getObjectInfo(
|
167
197
|
instanceNftId).objectAddress);
|
168
198
|
|
169
|
-
//
|
170
|
-
|
171
|
-
|
172
|
-
|
199
|
+
// no revert in case already locked
|
200
|
+
// TODO refactor/implement
|
201
|
+
// instance.getInstanceAdmin().setTargetLockedByService(
|
202
|
+
// componentAddress,
|
203
|
+
// locked);
|
173
204
|
}
|
174
205
|
|
175
206
|
|
@@ -177,49 +208,45 @@ contract InstanceService is
|
|
177
208
|
return _masterInstanceReader;
|
178
209
|
}
|
179
210
|
|
180
|
-
// From IService
|
181
|
-
function getDomain() public pure override returns(ObjectType) {
|
182
|
-
return INSTANCE();
|
183
|
-
}
|
184
|
-
|
185
211
|
function setAndRegisterMasterInstance(address instanceAddress)
|
186
212
|
external
|
187
213
|
onlyOwner
|
188
214
|
returns(NftId masterInstanceNftId)
|
189
215
|
{
|
190
216
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
191
|
-
if(
|
192
|
-
if(
|
193
|
-
if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
|
217
|
+
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
218
|
+
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
194
219
|
|
195
220
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
196
221
|
|
197
222
|
IInstance instance = IInstance(instanceAddress);
|
198
|
-
|
199
|
-
|
223
|
+
address accessManagerAddress = instance.authority();
|
224
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
225
|
+
address instanceAdminAddress = address(instanceAdmin);
|
200
226
|
InstanceReader instanceReader = instance.getInstanceReader();
|
201
227
|
address instanceReaderAddress = address(instanceReader);
|
202
|
-
|
228
|
+
BundleSet bundleManager = instance.getBundleSet();
|
203
229
|
address bundleManagerAddress = address(bundleManager);
|
204
230
|
InstanceStore instanceStore = instance.getInstanceStore();
|
205
231
|
address instanceStoreAddress = address(instanceStore);
|
206
232
|
|
207
|
-
if(
|
233
|
+
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
234
|
+
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
208
235
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
209
|
-
if(bundleManagerAddress == address(0)) { revert
|
236
|
+
if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
210
237
|
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
211
238
|
|
212
|
-
if(instance.authority() !=
|
213
|
-
if(bundleManager.authority() !=
|
214
|
-
if(instanceStore.authority() !=
|
239
|
+
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
240
|
+
if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
241
|
+
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
215
242
|
if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
|
216
243
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
217
244
|
|
218
|
-
|
219
|
-
|
245
|
+
_masterAccessManager = accessManagerAddress;
|
246
|
+
_masterInstanceAdmin = instanceAdminAddress;
|
220
247
|
_masterInstance = instanceAddress;
|
221
248
|
_masterInstanceReader = instanceReaderAddress;
|
222
|
-
|
249
|
+
_masterInstanceBundleSet = bundleManagerAddress;
|
223
250
|
_masterInstanceStore = instanceStoreAddress;
|
224
251
|
|
225
252
|
IInstance masterInstance = IInstance(_masterInstance);
|
@@ -227,7 +254,7 @@ contract InstanceService is
|
|
227
254
|
masterInstanceNftId = info.nftId;
|
228
255
|
}
|
229
256
|
|
230
|
-
function
|
257
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
|
231
258
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
232
259
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
233
260
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -247,7 +274,7 @@ contract InstanceService is
|
|
247
274
|
Instance instance = Instance(instanceInfo.objectAddress);
|
248
275
|
|
249
276
|
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
250
|
-
upgradedInstanceReaderClone.
|
277
|
+
upgradedInstanceReaderClone.initializeWithInstance(address(instance));
|
251
278
|
instance.setInstanceReader(upgradedInstanceReaderClone);
|
252
279
|
}
|
253
280
|
|
@@ -273,6 +300,25 @@ contract InstanceService is
|
|
273
300
|
}
|
274
301
|
|
275
302
|
|
303
|
+
function initializeAuthorization(
|
304
|
+
NftId instanceNftId,
|
305
|
+
IInstanceLinkedComponent component
|
306
|
+
)
|
307
|
+
external
|
308
|
+
virtual
|
309
|
+
restricted()
|
310
|
+
{
|
311
|
+
(IInstance instance, ) = _validateInstanceAndComponent(
|
312
|
+
instanceNftId,
|
313
|
+
address(component));
|
314
|
+
|
315
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
316
|
+
instanceAdmin.initializeComponentAuthorization(
|
317
|
+
component,
|
318
|
+
component.getAuthorization());
|
319
|
+
}
|
320
|
+
|
321
|
+
|
276
322
|
function createComponentTarget(
|
277
323
|
NftId instanceNftId,
|
278
324
|
address targetAddress,
|
@@ -282,8 +328,7 @@ contract InstanceService is
|
|
282
328
|
)
|
283
329
|
external
|
284
330
|
virtual
|
285
|
-
|
286
|
-
// restricted()
|
331
|
+
restricted()
|
287
332
|
{
|
288
333
|
_createGifTarget(
|
289
334
|
instanceNftId,
|
@@ -294,6 +339,53 @@ contract InstanceService is
|
|
294
339
|
);
|
295
340
|
}
|
296
341
|
|
342
|
+
/// @dev create new cloned instance admin
|
343
|
+
/// function used to setup a new instance
|
344
|
+
function _createInstanceAdmin()
|
345
|
+
internal
|
346
|
+
virtual
|
347
|
+
returns (InstanceAdmin clonedInstanceAdmin)
|
348
|
+
{
|
349
|
+
// start with setting up a new OZ access manager
|
350
|
+
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
351
|
+
Clones.clone(_masterAccessManager));
|
352
|
+
|
353
|
+
// set up the instance admin
|
354
|
+
clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
355
|
+
clonedAccessManager.initialize(
|
356
|
+
address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
|
357
|
+
|
358
|
+
clonedInstanceAdmin.initialize(
|
359
|
+
clonedAccessManager,
|
360
|
+
InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
|
361
|
+
}
|
362
|
+
|
363
|
+
|
364
|
+
/// @dev create new cloned instance
|
365
|
+
/// function used to setup a new instance
|
366
|
+
function _createInstance(
|
367
|
+
InstanceAdmin instanceAdmin,
|
368
|
+
address instanceOwner
|
369
|
+
)
|
370
|
+
internal
|
371
|
+
virtual
|
372
|
+
returns (Instance clonedInstance)
|
373
|
+
{
|
374
|
+
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
375
|
+
BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
|
376
|
+
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
377
|
+
|
378
|
+
// clone instance
|
379
|
+
clonedInstance = Instance(Clones.clone(_masterInstance));
|
380
|
+
clonedInstance.initialize(
|
381
|
+
instanceAdmin,
|
382
|
+
clonedInstanceStore,
|
383
|
+
clonedBundleSet,
|
384
|
+
clonedInstanceReader,
|
385
|
+
getRegistry(),
|
386
|
+
instanceOwner);
|
387
|
+
}
|
388
|
+
|
297
389
|
|
298
390
|
/// all gif targets MUST be children of instanceNftId
|
299
391
|
function _createGifTarget(
|
@@ -306,18 +398,21 @@ contract InstanceService is
|
|
306
398
|
internal
|
307
399
|
virtual
|
308
400
|
{
|
401
|
+
// TODO instanceAdmin will check target instance match anyway
|
309
402
|
(
|
310
403
|
IInstance instance, // or instanceInfo
|
311
404
|
// or targetInfo
|
312
405
|
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
313
406
|
|
314
|
-
|
315
|
-
|
407
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
408
|
+
|
409
|
+
// TODO refactor/implement
|
410
|
+
// instanceAdmin.createGifTarget(targetAddress, targetName);
|
411
|
+
|
316
412
|
// set proposed target config
|
317
|
-
// TODO restriction: gif targets are set only once and only here?
|
318
|
-
// assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
|
319
413
|
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
320
|
-
|
414
|
+
// TODO refactor/implement
|
415
|
+
// instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
321
416
|
}
|
322
417
|
}
|
323
418
|
|
@@ -327,8 +422,8 @@ contract InstanceService is
|
|
327
422
|
bytes memory data
|
328
423
|
)
|
329
424
|
internal
|
330
|
-
initializer
|
331
425
|
virtual override
|
426
|
+
initializer()
|
332
427
|
{
|
333
428
|
(
|
334
429
|
address registryAddress,,
|
@@ -336,12 +431,12 @@ contract InstanceService is
|
|
336
431
|
address authority
|
337
432
|
) = abi.decode(data, (address, address, address));
|
338
433
|
|
339
|
-
|
434
|
+
_initializeService(registryAddress, authority, owner);
|
340
435
|
|
341
436
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
342
437
|
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
343
438
|
|
344
|
-
|
439
|
+
_registerInterface(type(IInstanceService).interfaceId);
|
345
440
|
}
|
346
441
|
|
347
442
|
|
@@ -353,7 +448,7 @@ contract InstanceService is
|
|
353
448
|
IRegistry registry = getRegistry();
|
354
449
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
355
450
|
if(instanceInfo.objectType != INSTANCE()) {
|
356
|
-
revert
|
451
|
+
revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
|
357
452
|
}
|
358
453
|
|
359
454
|
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
|
@@ -364,4 +459,9 @@ contract InstanceService is
|
|
364
459
|
instance = Instance(instanceInfo.objectAddress);
|
365
460
|
componentNftId = componentInfo.nftId;
|
366
461
|
}
|
462
|
+
|
463
|
+
// From IService
|
464
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
465
|
+
return INSTANCE();
|
466
|
+
}
|
367
467
|
}
|
@@ -1,13 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import {ProxyManager} from "../shared/ProxyManager.sol";
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
7
6
|
import {InstanceService} from "./InstanceService.sol";
|
8
|
-
import {Registry} from "../registry/Registry.sol";
|
9
|
-
import {RegistryService} from "../registry/RegistryService.sol";
|
10
|
-
import {REGISTRY} from "../type/ObjectType.sol";
|
11
7
|
|
12
8
|
contract InstanceServiceManager is ProxyManager {
|
13
9
|
|
@@ -4,15 +4,13 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
5
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
7
|
-
import {Key32
|
7
|
+
import {Key32} from "../type/Key32.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
9
|
import {ClaimId} from "../type/ClaimId.sol";
|
10
|
-
import {ObjectType, BUNDLE,
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {StateId
|
14
|
-
import {TimestampLib} from "../type/Timestamp.sol";
|
15
|
-
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
10
|
+
import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
|
11
|
+
import {RequestId} from "../type/RequestId.sol";
|
12
|
+
import {RiskId} from "../type/RiskId.sol";
|
13
|
+
import {StateId} from "../type/StateId.sol";
|
16
14
|
import {ReferralId} from "../type/Referral.sol";
|
17
15
|
import {DistributorType} from "../type/DistributorType.sol";
|
18
16
|
import {PayoutId} from "../type/PayoutId.sol";
|
@@ -20,30 +18,41 @@ import {PayoutId} from "../type/PayoutId.sol";
|
|
20
18
|
import {BalanceStore} from "./base/BalanceStore.sol";
|
21
19
|
import {IInstance} from "./IInstance.sol";
|
22
20
|
import {KeyValueStore} from "../shared/KeyValueStore.sol";
|
23
|
-
import {
|
21
|
+
import {ObjectCounter} from "./base/ObjectCounter.sol";
|
24
22
|
|
25
23
|
import {IBundle} from "./module/IBundle.sol";
|
26
24
|
import {IComponents} from "./module/IComponents.sol";
|
27
25
|
import {IDistribution} from "./module/IDistribution.sol";
|
28
26
|
import {IPolicy} from "./module/IPolicy.sol";
|
27
|
+
import {IOracle} from "../oracle/IOracle.sol";
|
29
28
|
import {IRisk} from "./module/IRisk.sol";
|
30
29
|
|
30
|
+
import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
|
31
|
+
|
31
32
|
|
32
33
|
contract InstanceStore is
|
33
34
|
AccessManagedUpgradeable,
|
35
|
+
BalanceStore,
|
34
36
|
KeyValueStore,
|
35
|
-
|
37
|
+
ObjectCounter,
|
38
|
+
ObjectLifecycle
|
36
39
|
{
|
37
|
-
|
40
|
+
|
41
|
+
/// @dev This initializer needs to be called from the instance itself.
|
42
|
+
function initialize()
|
38
43
|
public
|
39
44
|
initializer()
|
40
45
|
{
|
46
|
+
address instance = msg.sender;
|
41
47
|
address authority = IInstance(instance).authority();
|
48
|
+
|
42
49
|
__AccessManaged_init(authority);
|
43
|
-
|
50
|
+
// double initialization, safe
|
51
|
+
_initializeLifecycle();
|
44
52
|
}
|
45
53
|
|
46
54
|
//--- Component ---------------------------------------------------------//
|
55
|
+
|
47
56
|
function createComponent(
|
48
57
|
NftId componentNftId,
|
49
58
|
IComponents.ComponentInfo memory componentInfo
|
@@ -66,7 +75,7 @@ contract InstanceStore is
|
|
66
75
|
_update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
|
67
76
|
}
|
68
77
|
|
69
|
-
//---
|
78
|
+
//--- Product -----------------------------------------------------------//
|
70
79
|
|
71
80
|
function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
|
72
81
|
_create(_toNftKey32(productNftId, PRODUCT()), abi.encode(info));
|
@@ -76,11 +85,7 @@ contract InstanceStore is
|
|
76
85
|
_update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
|
77
86
|
}
|
78
87
|
|
79
|
-
|
80
|
-
_updateState(_toNftKey32(productNftId, PRODUCT()), newState);
|
81
|
-
}
|
82
|
-
|
83
|
-
//--- PoolSetup ------------------------------------------------------//
|
88
|
+
//--- Pool --------------------------------------------------------------//
|
84
89
|
|
85
90
|
function createPool(
|
86
91
|
NftId poolNftId,
|
@@ -96,11 +101,7 @@ contract InstanceStore is
|
|
96
101
|
_update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
|
97
102
|
}
|
98
103
|
|
99
|
-
|
100
|
-
_updateState(_toNftKey32(poolNftId, POOL()), newState);
|
101
|
-
}
|
102
|
-
|
103
|
-
//--- DistributorType -------------------------------------------------------//
|
104
|
+
//--- DistributorType ---------------------------------------------------//
|
104
105
|
function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
|
105
106
|
_create(distributorType.toKey32(), abi.encode(info));
|
106
107
|
}
|
@@ -115,6 +116,7 @@ contract InstanceStore is
|
|
115
116
|
|
116
117
|
//--- Distributor -------------------------------------------------------//
|
117
118
|
function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
|
119
|
+
_registerBalanceTarget(distributorNftId);
|
118
120
|
_create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
|
119
121
|
}
|
120
122
|
|
@@ -193,6 +195,16 @@ contract InstanceStore is
|
|
193
195
|
_updateState(_toNftKey32(policyNftId, POLICY()), newState);
|
194
196
|
}
|
195
197
|
|
198
|
+
|
199
|
+
//--- Premium (Policy) ----------------------------------------------//
|
200
|
+
function createPremium(NftId policyNftId, IPolicy.PremiumInfo memory premium) external restricted() {
|
201
|
+
_create(_toNftKey32(policyNftId, PREMIUM()), abi.encode(premium));
|
202
|
+
}
|
203
|
+
|
204
|
+
function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
|
205
|
+
_updateState(_toNftKey32(policyNftId, PREMIUM()), newState);
|
206
|
+
}
|
207
|
+
|
196
208
|
//--- Claim -------------------------------------------------------------//
|
197
209
|
function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
|
198
210
|
_create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
|
@@ -219,6 +231,21 @@ contract InstanceStore is
|
|
219
231
|
_updateState(_toPayoutKey32(policyNftId, payoutId), newState);
|
220
232
|
}
|
221
233
|
|
234
|
+
//--- Request -----------------------------------------------------------//
|
235
|
+
|
236
|
+
function createRequest(IOracle.RequestInfo memory request) external restricted() returns (RequestId requestId) {
|
237
|
+
requestId = _createNextRequestId();
|
238
|
+
_create(requestId.toKey32(), abi.encode(request));
|
239
|
+
}
|
240
|
+
|
241
|
+
function updateRequest(RequestId requestId, IOracle.RequestInfo memory request, StateId newState) external restricted() {
|
242
|
+
_update(requestId.toKey32(), abi.encode(request), newState);
|
243
|
+
}
|
244
|
+
|
245
|
+
function updateRequestState(RequestId requestId, StateId newState) external restricted() {
|
246
|
+
_updateState(requestId.toKey32(), newState);
|
247
|
+
}
|
248
|
+
|
222
249
|
//--- balance and fee management functions ------------------------------//
|
223
250
|
|
224
251
|
function increaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
|