@etherisc/gif-next 0.0.2-fd4931b-974 → 0.0.2-fd4ee14-428
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 +2 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +19 -13
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +115 -80
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +81 -54
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +11 -5
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +20 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +32 -101
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +83 -71
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +121 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +105 -85
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +126 -30
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +195 -64
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +206 -49
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +74 -31
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +248 -118
- 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/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +2 -71
- 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/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +10 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -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 +1146 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +91 -48
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +69 -38
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +20 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +11 -5
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +35 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +18 -12
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +84 -42
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +58 -35
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +79 -36
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +63 -32
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +119 -68
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +83 -48
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +20 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +20 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +20 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +20 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +11 -5
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +20 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +97 -46
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +72 -37
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +105 -62
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +76 -45
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +18 -12
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +61 -26
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +54 -27
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +82 -45
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -1
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +254 -97
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -15
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +46 -30
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +288 -182
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -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/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +18 -12
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +120 -70
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +80 -49
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +20 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +11 -5
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +11 -5
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +0 -10
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +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/IVersionable.sol/IVersionable.dbg.json +1 -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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +18 -12
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +10 -20
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +6 -6
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +27 -35
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +13 -7
- 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/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +35 -16
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +15 -9
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +20 -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/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +247 -579
- 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 +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +303 -798
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +81 -164
- 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 +503 -120
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +67 -43
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +281 -18
- 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 +68 -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 +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 +2 -2
- 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 +96 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +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 +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +114 -4
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +52 -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 +17 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- 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 +2 -2
- package/contracts/distribution/Distribution.sol +2 -4
- package/contracts/distribution/DistributionService.sol +5 -6
- package/contracts/distribution/DistributionServiceManager.sol +0 -12
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +1 -1
- package/contracts/instance/IInstance.sol +21 -11
- package/contracts/instance/IInstanceService.sol +26 -12
- package/contracts/instance/Instance.sol +84 -49
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +192 -151
- package/contracts/instance/InstanceReader.sol +32 -6
- package/contracts/instance/InstanceService.sol +119 -47
- package/contracts/instance/InstanceStore.sol +29 -20
- 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/ObjectManager.sol +1 -3
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/oracle/IOracle.sol +20 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +145 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BundleService.sol +20 -20
- package/contracts/pool/IBundleService.sol +1 -1
- package/contracts/pool/IPoolService.sol +4 -1
- package/contracts/pool/PoolService.sol +38 -10
- package/contracts/product/ApplicationService.sol +6 -6
- package/contracts/product/ClaimService.sol +12 -7
- package/contracts/product/IApplicationService.sol +1 -1
- package/contracts/product/IClaimService.sol +7 -1
- package/contracts/product/IPolicyService.sol +1 -1
- package/contracts/product/IPricingService.sol +1 -1
- package/contracts/product/IProductService.sol +1 -1
- package/contracts/product/PolicyService.sol +9 -7
- package/contracts/product/PricingService.sol +8 -9
- package/contracts/product/Product.sol +1 -1
- package/contracts/product/ProductService.sol +6 -6
- package/contracts/registry/ChainNft.sol +1 -0
- package/contracts/registry/IRegistry.sol +20 -14
- package/contracts/registry/IRegistryService.sol +1 -0
- package/contracts/registry/IServiceAuthorization.sol +35 -0
- package/contracts/registry/Registry.sol +85 -66
- package/contracts/registry/RegistryAdmin.sol +333 -0
- package/contracts/registry/RegistryService.sol +8 -70
- package/contracts/registry/RegistryServiceManager.sol +1 -20
- package/contracts/registry/ReleaseManager.sol +218 -221
- package/contracts/registry/ServiceAuthorization.sol +86 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +56 -60
- package/contracts/shared/AccessAdmin.sol +759 -0
- package/contracts/shared/AccessManagerCustom.sol +741 -0
- package/contracts/shared/AccessManagerExtended.sol +481 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +8 -13
- package/contracts/shared/ComponentService.sol +39 -17
- package/contracts/shared/ComponentVerifyingService.sol +13 -7
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IAccessAdmin.sol +168 -0
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/shared/IComponent.sol +3 -7
- package/contracts/shared/IComponentService.sol +11 -0
- package/contracts/shared/IKeyValueStore.sol +1 -1
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IService.sol +8 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +1 -2
- package/contracts/shared/KeyValueStore.sol +1 -4
- package/contracts/shared/Lifecycle.sol +11 -2
- package/contracts/shared/NftIdSetManager.sol +2 -6
- package/contracts/shared/NftOwnable.sol +2 -13
- package/contracts/shared/PolicyHolder.sol +2 -1
- package/contracts/shared/ProxyManager.sol +6 -2
- package/contracts/shared/Service.sol +28 -22
- package/contracts/staking/IStaking.sol +93 -38
- package/contracts/staking/IStakingService.sol +71 -40
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +302 -137
- package/contracts/staking/StakingManager.sol +22 -20
- package/contracts/staking/StakingReader.sol +119 -24
- package/contracts/staking/StakingService.sol +193 -76
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +613 -0
- package/contracts/staking/TargetManagerLib.sol +76 -10
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +15 -1
- package/contracts/type/Blocknumber.sol +14 -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 +139 -67
- package/contracts/type/Referral.sol +1 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +79 -21
- package/contracts/type/Seconds.sol +18 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +12 -0
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +6 -2
- package/contracts/type/Version.sol +1 -1
- package/package.json +3 -3
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- 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/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/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/registry/RegistryAccessManager.sol +0 -167
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
@@ -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 {Amount} from "../type/Amount.sol";
|
7
8
|
import {BundleManager} from "./BundleManager.sol";
|
8
9
|
import {ChainNft} from "../registry/ChainNft.sol";
|
9
10
|
import {NftId} from "../type/NftId.sol";
|
10
11
|
import {RoleId} from "../type/RoleId.sol";
|
11
12
|
import {SecondsLib} from "../type/Seconds.sol";
|
12
|
-
import {UFixedLib} from "../type/UFixed.sol";
|
13
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
13
14
|
import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, INSTANCE_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, APPLICATION_SERVICE_ROLE, POLICY_SERVICE_ROLE, CLAIM_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_ROLE} from "../type/RoleId.sol";
|
14
|
-
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
15
|
+
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
15
16
|
|
16
17
|
import {Service} from "../shared/Service.sol";
|
17
18
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
18
19
|
import {IService} from "../shared/IService.sol";
|
19
|
-
import {
|
20
|
+
import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
|
20
21
|
|
21
22
|
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
22
23
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
@@ -29,11 +30,14 @@ import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
|
29
30
|
|
30
31
|
import {Instance} from "./Instance.sol";
|
31
32
|
import {IInstance} from "./IInstance.sol";
|
32
|
-
import {
|
33
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
33
34
|
import {IInstanceService} from "./IInstanceService.sol";
|
34
35
|
import {InstanceReader} from "./InstanceReader.sol";
|
35
36
|
import {InstanceStore} from "./InstanceStore.sol";
|
36
37
|
import {InstanceAuthorizationsLib} from "./InstanceAuthorizationsLib.sol";
|
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
57
|
address internal _masterInstanceBundleManager;
|
54
58
|
address internal _masterInstanceStore;
|
55
59
|
|
60
|
+
|
61
|
+
modifier onlyInstance() {
|
62
|
+
address instanceAddress = msg.sender;
|
63
|
+
NftId instanceNftId = getRegistry().getNftId(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);
|
@@ -76,18 +102,17 @@ contract InstanceService is
|
|
76
102
|
)
|
77
103
|
{
|
78
104
|
address instanceOwner = msg.sender;
|
79
|
-
|
80
|
-
Clones.clone(
|
105
|
+
AccessManagerExtendedInitializeable clonedAccessManager = AccessManagerExtendedInitializeable(
|
106
|
+
Clones.clone(_masterAccessManager));
|
81
107
|
|
82
108
|
// initially grants ADMIN_ROLE to this (being the instance service).
|
83
109
|
// 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
110
|
// Instance service will renounce ADMIN_ROLE when bootstraping is finished
|
86
|
-
|
111
|
+
clonedAccessManager.initialize(address(this));
|
87
112
|
|
88
113
|
clonedInstance = Instance(Clones.clone(_masterInstance));
|
89
114
|
clonedInstance.initialize(
|
90
|
-
address(
|
115
|
+
address(clonedAccessManager),
|
91
116
|
address(getRegistry()),
|
92
117
|
instanceOwner);
|
93
118
|
// initialize and set before instance reader
|
@@ -103,16 +128,17 @@ contract InstanceService is
|
|
103
128
|
clonedBundleManager.initialize(address(clonedInstance));
|
104
129
|
clonedInstance.setBundleManager(clonedBundleManager);
|
105
130
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
clonedInstance.
|
131
|
+
InstanceAdmin clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
132
|
+
clonedAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAdmin), 0);
|
133
|
+
clonedInstanceAdmin.initialize(address(clonedInstance));
|
134
|
+
clonedInstance.setInstanceAdmin(clonedInstanceAdmin);
|
110
135
|
|
111
136
|
// TODO amend setters with instance specific , policy manager ...
|
112
137
|
|
113
138
|
// TODO library does external calls -> but it is registry and access manager -> find out is it best practice
|
114
139
|
InstanceAuthorizationsLib.grantInitialAuthorizations(
|
115
|
-
|
140
|
+
clonedAccessManager,
|
141
|
+
clonedInstanceAdmin,
|
116
142
|
clonedInstance,
|
117
143
|
clonedBundleManager,
|
118
144
|
clonedInstanceStore,
|
@@ -120,7 +146,7 @@ contract InstanceService is
|
|
120
146
|
getRegistry(),
|
121
147
|
getVersion().toMajorPart());
|
122
148
|
|
123
|
-
|
149
|
+
clonedAccessManager.renounceRole(ADMIN_ROLE().toInt(), address(this));
|
124
150
|
|
125
151
|
// register new instance with registry
|
126
152
|
IRegistry.ObjectInfo memory info = _registryService.registerInstance(clonedInstance, instanceOwner);
|
@@ -133,8 +159,8 @@ contract InstanceService is
|
|
133
159
|
TargetManagerLib.getDefaultRewardRate());
|
134
160
|
|
135
161
|
emit LogInstanceCloned(
|
136
|
-
address(
|
137
|
-
address(
|
162
|
+
address(clonedAccessManager),
|
163
|
+
address(clonedInstanceAdmin),
|
138
164
|
address(clonedInstance),
|
139
165
|
address(clonedInstanceStore),
|
140
166
|
address(clonedBundleManager),
|
@@ -143,6 +169,56 @@ contract InstanceService is
|
|
143
169
|
}
|
144
170
|
|
145
171
|
|
172
|
+
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
173
|
+
external
|
174
|
+
virtual
|
175
|
+
onlyInstance()
|
176
|
+
{
|
177
|
+
NftId instanceNftId = getRegistry().getNftId(msg.sender);
|
178
|
+
_stakingService.setInstanceLockingPeriod(
|
179
|
+
instanceNftId,
|
180
|
+
stakeLockingPeriod);
|
181
|
+
}
|
182
|
+
|
183
|
+
|
184
|
+
function setStakingRewardRate(UFixed rewardRate)
|
185
|
+
external
|
186
|
+
virtual
|
187
|
+
onlyInstance()
|
188
|
+
{
|
189
|
+
NftId instanceNftId = getRegistry().getNftId(msg.sender);
|
190
|
+
_stakingService.setInstanceRewardRate(
|
191
|
+
instanceNftId,
|
192
|
+
rewardRate);
|
193
|
+
}
|
194
|
+
|
195
|
+
|
196
|
+
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
|
197
|
+
external
|
198
|
+
virtual
|
199
|
+
onlyInstance()
|
200
|
+
{
|
201
|
+
NftId instanceNftId = getRegistry().getNftId(msg.sender);
|
202
|
+
_stakingService.refillInstanceRewardReserves(
|
203
|
+
instanceNftId,
|
204
|
+
rewardProvider,
|
205
|
+
dipAmount);
|
206
|
+
}
|
207
|
+
|
208
|
+
|
209
|
+
function withdrawStakingRewardReserves(Amount dipAmount)
|
210
|
+
external
|
211
|
+
virtual
|
212
|
+
onlyInstance()
|
213
|
+
returns (Amount newBalance)
|
214
|
+
{
|
215
|
+
NftId instanceNftId = getRegistry().getNftId(msg.sender);
|
216
|
+
_stakingService.withdrawInstanceRewardReserves(
|
217
|
+
instanceNftId,
|
218
|
+
dipAmount);
|
219
|
+
}
|
220
|
+
|
221
|
+
|
146
222
|
function setComponentLocked(bool locked)
|
147
223
|
external
|
148
224
|
virtual
|
@@ -158,16 +234,12 @@ contract InstanceService is
|
|
158
234
|
IRegistry registry = getRegistry();
|
159
235
|
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
160
236
|
|
161
|
-
if (instanceNftId.eqz()) {
|
162
|
-
revert ErrorInstanceServiceComponentNotRegistered(componentAddress);
|
163
|
-
}
|
164
|
-
|
165
237
|
IInstance instance = IInstance(
|
166
238
|
registry.getObjectInfo(
|
167
239
|
instanceNftId).objectAddress);
|
168
240
|
|
169
|
-
//
|
170
|
-
instance.
|
241
|
+
// no revert in case already locked
|
242
|
+
instance.getInstanceAdmin().setTargetLockedByService(
|
171
243
|
componentAddress,
|
172
244
|
locked);
|
173
245
|
}
|
@@ -177,26 +249,21 @@ contract InstanceService is
|
|
177
249
|
return _masterInstanceReader;
|
178
250
|
}
|
179
251
|
|
180
|
-
// From IService
|
181
|
-
function getDomain() public pure override returns(ObjectType) {
|
182
|
-
return INSTANCE();
|
183
|
-
}
|
184
|
-
|
185
252
|
function setAndRegisterMasterInstance(address instanceAddress)
|
186
253
|
external
|
187
254
|
onlyOwner
|
188
255
|
returns(NftId masterInstanceNftId)
|
189
256
|
{
|
190
257
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
191
|
-
if(
|
192
|
-
if(
|
258
|
+
if(_masterAccessManager != address(0)) { revert ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet(); }
|
259
|
+
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
193
260
|
if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
|
194
261
|
|
195
262
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
196
263
|
|
197
264
|
IInstance instance = IInstance(instanceAddress);
|
198
|
-
|
199
|
-
address
|
265
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
266
|
+
address instanceAdminAddress = address(instanceAdmin);
|
200
267
|
InstanceReader instanceReader = instance.getInstanceReader();
|
201
268
|
address instanceReaderAddress = address(instanceReader);
|
202
269
|
BundleManager bundleManager = instance.getBundleManager();
|
@@ -204,19 +271,19 @@ contract InstanceService is
|
|
204
271
|
InstanceStore instanceStore = instance.getInstanceStore();
|
205
272
|
address instanceStoreAddress = address(instanceStore);
|
206
273
|
|
207
|
-
if(
|
274
|
+
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
208
275
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
209
276
|
if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleManagerZero(); }
|
210
277
|
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
211
278
|
|
212
|
-
if(instance.authority() !=
|
213
|
-
if(bundleManager.authority() !=
|
214
|
-
if(instanceStore.authority() !=
|
279
|
+
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
280
|
+
if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleManagerAuthorityMismatch(); }
|
281
|
+
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
215
282
|
if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
|
216
283
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
217
284
|
|
218
|
-
|
219
|
-
|
285
|
+
_masterAccessManager = instance.authority();
|
286
|
+
_masterInstanceAdmin = instanceAdminAddress;
|
220
287
|
_masterInstance = instanceAddress;
|
221
288
|
_masterInstanceReader = instanceReaderAddress;
|
222
289
|
_masterInstanceBundleManager = bundleManagerAddress;
|
@@ -227,7 +294,7 @@ contract InstanceService is
|
|
227
294
|
masterInstanceNftId = info.nftId;
|
228
295
|
}
|
229
296
|
|
230
|
-
function
|
297
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
|
231
298
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
232
299
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
233
300
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -282,8 +349,7 @@ contract InstanceService is
|
|
282
349
|
)
|
283
350
|
external
|
284
351
|
virtual
|
285
|
-
|
286
|
-
// restricted()
|
352
|
+
restricted()
|
287
353
|
{
|
288
354
|
_createGifTarget(
|
289
355
|
instanceNftId,
|
@@ -306,18 +372,19 @@ contract InstanceService is
|
|
306
372
|
internal
|
307
373
|
virtual
|
308
374
|
{
|
375
|
+
// TODO instanceAdmin will check target instance match anyway
|
309
376
|
(
|
310
377
|
IInstance instance, // or instanceInfo
|
311
378
|
// or targetInfo
|
312
379
|
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
313
380
|
|
314
|
-
|
315
|
-
|
381
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
382
|
+
instanceAdmin.createGifTarget(targetAddress, targetName);
|
316
383
|
// set proposed target config
|
317
384
|
// TODO restriction: gif targets are set only once and only here?
|
318
385
|
// assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
|
319
386
|
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
320
|
-
|
387
|
+
instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
321
388
|
}
|
322
389
|
}
|
323
390
|
|
@@ -353,7 +420,7 @@ contract InstanceService is
|
|
353
420
|
IRegistry registry = getRegistry();
|
354
421
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
355
422
|
if(instanceInfo.objectType != INSTANCE()) {
|
356
|
-
revert
|
423
|
+
revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
|
357
424
|
}
|
358
425
|
|
359
426
|
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
|
@@ -364,4 +431,9 @@ contract InstanceService is
|
|
364
431
|
instance = Instance(instanceInfo.objectAddress);
|
365
432
|
componentNftId = componentInfo.nftId;
|
366
433
|
}
|
434
|
+
|
435
|
+
// From IService
|
436
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
437
|
+
return INSTANCE();
|
438
|
+
}
|
367
439
|
}
|
@@ -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, PRODUCT, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} 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,19 +18,21 @@ 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
|
|
31
30
|
|
32
31
|
contract InstanceStore is
|
33
32
|
AccessManagedUpgradeable,
|
33
|
+
BalanceStore,
|
34
34
|
KeyValueStore,
|
35
|
-
|
35
|
+
ObjectCounter
|
36
36
|
{
|
37
37
|
function initialize(address instance)
|
38
38
|
public
|
@@ -40,10 +40,12 @@ contract InstanceStore is
|
|
40
40
|
{
|
41
41
|
address authority = IInstance(instance).authority();
|
42
42
|
__AccessManaged_init(authority);
|
43
|
+
|
43
44
|
initializeLifecycle();
|
44
45
|
}
|
45
46
|
|
46
47
|
//--- Component ---------------------------------------------------------//
|
48
|
+
|
47
49
|
function createComponent(
|
48
50
|
NftId componentNftId,
|
49
51
|
IComponents.ComponentInfo memory componentInfo
|
@@ -66,7 +68,7 @@ contract InstanceStore is
|
|
66
68
|
_update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
|
67
69
|
}
|
68
70
|
|
69
|
-
//---
|
71
|
+
//--- Product -----------------------------------------------------------//
|
70
72
|
|
71
73
|
function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
|
72
74
|
_create(_toNftKey32(productNftId, PRODUCT()), abi.encode(info));
|
@@ -76,11 +78,7 @@ contract InstanceStore is
|
|
76
78
|
_update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
|
77
79
|
}
|
78
80
|
|
79
|
-
|
80
|
-
_updateState(_toNftKey32(productNftId, PRODUCT()), newState);
|
81
|
-
}
|
82
|
-
|
83
|
-
//--- PoolSetup ------------------------------------------------------//
|
81
|
+
//--- Pool --------------------------------------------------------------//
|
84
82
|
|
85
83
|
function createPool(
|
86
84
|
NftId poolNftId,
|
@@ -96,11 +94,7 @@ contract InstanceStore is
|
|
96
94
|
_update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
|
97
95
|
}
|
98
96
|
|
99
|
-
|
100
|
-
_updateState(_toNftKey32(poolNftId, POOL()), newState);
|
101
|
-
}
|
102
|
-
|
103
|
-
//--- DistributorType -------------------------------------------------------//
|
97
|
+
//--- DistributorType ---------------------------------------------------//
|
104
98
|
function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
|
105
99
|
_create(distributorType.toKey32(), abi.encode(info));
|
106
100
|
}
|
@@ -219,6 +213,21 @@ contract InstanceStore is
|
|
219
213
|
_updateState(_toPayoutKey32(policyNftId, payoutId), newState);
|
220
214
|
}
|
221
215
|
|
216
|
+
//--- Request -----------------------------------------------------------//
|
217
|
+
|
218
|
+
function createRequest(IOracle.RequestInfo memory request) external restricted() returns (RequestId requestId) {
|
219
|
+
requestId = _createNextRequestId();
|
220
|
+
_create(requestId.toKey32(), abi.encode(request));
|
221
|
+
}
|
222
|
+
|
223
|
+
function updateRequest(RequestId requestId, IOracle.RequestInfo memory request, StateId newState) external restricted() {
|
224
|
+
_update(requestId.toKey32(), abi.encode(request), newState);
|
225
|
+
}
|
226
|
+
|
227
|
+
function updateRequestState(RequestId requestId, StateId newState) external restricted() {
|
228
|
+
_updateState(requestId.toKey32(), newState);
|
229
|
+
}
|
230
|
+
|
222
231
|
//--- balance and fee management functions ------------------------------//
|
223
232
|
|
224
233
|
function increaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
|
@@ -60,7 +60,7 @@ contract BalanceStore {
|
|
60
60
|
}
|
61
61
|
|
62
62
|
_isRegistered[targetNftId] = true;
|
63
|
-
|
63
|
+
_setLastUpdatedIn(targetNftId);
|
64
64
|
|
65
65
|
emit LogBalanceStoreTargetRegistered(targetNftId);
|
66
66
|
}
|
@@ -71,7 +71,7 @@ contract BalanceStore {
|
|
71
71
|
_feeAmount[targetNftId] = newBalance;
|
72
72
|
|
73
73
|
emit LogBalanceStoreFeesIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
74
|
-
|
74
|
+
_setLastUpdatedIn(targetNftId);
|
75
75
|
}
|
76
76
|
|
77
77
|
function _decreaseFees(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
|
@@ -79,7 +79,7 @@ contract BalanceStore {
|
|
79
79
|
_feeAmount[targetNftId] = newBalance;
|
80
80
|
|
81
81
|
emit LogBalanceStoreFeesDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
82
|
-
|
82
|
+
_setLastUpdatedIn(targetNftId);
|
83
83
|
}
|
84
84
|
|
85
85
|
//--- locked management -------------------------------------------------//
|
@@ -88,7 +88,7 @@ contract BalanceStore {
|
|
88
88
|
_lockedAmount[targetNftId] = newBalance;
|
89
89
|
|
90
90
|
emit LogBalanceStoreLockedIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
91
|
-
|
91
|
+
_setLastUpdatedIn(targetNftId);
|
92
92
|
}
|
93
93
|
|
94
94
|
function _decreaseLocked(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
|
@@ -96,7 +96,7 @@ contract BalanceStore {
|
|
96
96
|
_lockedAmount[targetNftId] = newBalance;
|
97
97
|
|
98
98
|
emit LogBalanceStoreLockedDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
99
|
-
|
99
|
+
_setLastUpdatedIn(targetNftId);
|
100
100
|
}
|
101
101
|
|
102
102
|
//--- balance management ------------------------------------------------//
|
@@ -105,7 +105,7 @@ contract BalanceStore {
|
|
105
105
|
_balanceAmount[targetNftId] = newBalance;
|
106
106
|
|
107
107
|
emit LogBalanceStoreBalanceIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
108
|
-
|
108
|
+
_setLastUpdatedIn(targetNftId);
|
109
109
|
}
|
110
110
|
|
111
111
|
function _decreaseBalance(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
|
@@ -113,6 +113,11 @@ contract BalanceStore {
|
|
113
113
|
_balanceAmount[targetNftId] = newBalance;
|
114
114
|
|
115
115
|
emit LogBalanceStoreBalanceDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
116
|
+
_setLastUpdatedIn(targetNftId);
|
117
|
+
}
|
118
|
+
|
119
|
+
//--- internal/private functions ----------------------------------------//
|
120
|
+
function _setLastUpdatedIn(NftId targetNftId) internal {
|
116
121
|
_lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
|
117
122
|
}
|
118
123
|
}
|
@@ -2,47 +2,24 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
-
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
6
5
|
|
7
6
|
import {IRegistry} from "../../registry/IRegistry.sol";
|
8
7
|
|
9
8
|
abstract contract Cloneable is
|
10
9
|
AccessManagedUpgradeable
|
11
10
|
{
|
12
|
-
event CloneableInitialized(address authority, address registry);
|
13
|
-
|
14
|
-
error CloneableAuthorityZero();
|
15
|
-
error CloneableRegistryInvalid(address registry);
|
16
|
-
|
17
11
|
IRegistry internal _registry;
|
18
12
|
|
19
|
-
constructor() {
|
20
|
-
_registry = IRegistry(address(0));
|
21
|
-
}
|
22
|
-
|
23
13
|
/// @dev call to initialize MUST be made in the same transaction as cloning of the contract
|
24
|
-
function
|
14
|
+
function __Cloneable_init(
|
25
15
|
address authority,
|
26
16
|
address registry
|
27
17
|
)
|
28
|
-
|
18
|
+
internal
|
29
19
|
onlyInitializing
|
30
20
|
{
|
31
|
-
// check/handle access managed
|
32
|
-
if(authority == address(0)) {
|
33
|
-
revert CloneableAuthorityZero();
|
34
|
-
}
|
35
|
-
|
36
21
|
__AccessManaged_init(authority);
|
37
|
-
|
38
|
-
// check/handle registry
|
39
|
-
if (registry.code.length == 0) {
|
40
|
-
revert CloneableRegistryInvalid(registry);
|
41
|
-
}
|
42
|
-
|
43
22
|
_registry = IRegistry(registry);
|
44
|
-
|
45
|
-
emit CloneableInitialized(authority, registry);
|
46
23
|
}
|
47
24
|
|
48
25
|
function getRegistry() external view returns (IRegistry) {
|
@@ -0,0 +1,21 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Blocknumber, BlocknumberLib} from "../../type/Blocknumber.sol";
|
5
|
+
import {NftId} from "../../type/NftId.sol";
|
6
|
+
import {Amount} from "../../type/Amount.sol";
|
7
|
+
import {RequestId, RequestIdLib} from "../../type/RequestId.sol";
|
8
|
+
|
9
|
+
contract ObjectCounter {
|
10
|
+
|
11
|
+
// TODO refactor risk id
|
12
|
+
// mapping(NftId productNftId => uint64 risks) private _riskCounter;
|
13
|
+
|
14
|
+
uint256 private _requestCounter;
|
15
|
+
|
16
|
+
// TODO introduce RequestId (uint64)
|
17
|
+
function _createNextRequestId() internal returns (RequestId requestId) {
|
18
|
+
_requestCounter++;
|
19
|
+
requestId = RequestIdLib.toRequestId(_requestCounter);
|
20
|
+
}
|
21
|
+
}
|
@@ -17,7 +17,6 @@ contract ObjectManager is
|
|
17
17
|
event LogObjectManagerInitialized(address instance);
|
18
18
|
|
19
19
|
error ErrorObjectManagerNftIdInvalid(NftId instanceNftId);
|
20
|
-
error ErrorObjectManagerAlreadyAdded(NftId componentNftId, NftId objectNftId);
|
21
20
|
|
22
21
|
mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _activeObjects;
|
23
22
|
mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _allObjects;
|
@@ -29,8 +28,7 @@ contract ObjectManager is
|
|
29
28
|
external
|
30
29
|
{
|
31
30
|
IInstance instance = IInstance(instanceAddress);
|
32
|
-
|
33
|
-
|
31
|
+
__Cloneable_init(instance.authority(), address(instance.getRegistry()));
|
34
32
|
_instance = instance;
|
35
33
|
|
36
34
|
emit LogObjectManagerInitialized(instanceAddress);
|
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
5
5
|
|
6
|
+
import {NftId} from "../../type/NftId.sol";
|
6
7
|
import {RoleId} from "../../type/RoleId.sol";
|
7
8
|
import {Timestamp} from "../../type/Timestamp.sol";
|
8
9
|
|
@@ -32,23 +33,14 @@ interface IAccess {
|
|
32
33
|
Timestamp updatedAt;
|
33
34
|
}
|
34
35
|
|
35
|
-
error ErrorIAccessCallerIsNotRoleAdmin(address caller, RoleId roleId);
|
36
|
-
|
37
|
-
error ErrorIAccessRoleIdDoesNotExist(RoleId roleId);
|
38
36
|
error ErrorIAccessRoleIdTooBig(RoleId roleId);
|
39
37
|
error ErrorIAccessRoleIdTooSmall(RoleId roleId);
|
40
|
-
error ErrorIAccessRoleIdExists(RoleId roleId);
|
41
|
-
error ErrorIAccessRoleNameEmpty(RoleId roleId);
|
42
|
-
error ErrorIAccessRoleNameExists(RoleId roleId, RoleId existingRoleId, ShortString name);
|
43
38
|
error ErrorIAccessRoleTypeInvalid(RoleId roleId, Type rtype);
|
44
39
|
|
45
40
|
error ErrorIAccessTargetAddressZero();
|
46
|
-
error ErrorIAccessTargetDoesNotExist(address target);
|
47
|
-
error ErrorIAccessTargetExists(address target, ShortString name);
|
48
41
|
error ErrorIAccessTargetTypeInvalid(address target, Type ttype);
|
49
|
-
error ErrorIAccessTargetNameEmpty(address target);
|
50
|
-
error ErrorIAccessTargetNameExists(address target, address existingTarget, ShortString name);
|
51
42
|
error ErrorIAccessTargetLocked(address target);
|
52
43
|
error ErrorIAccessTargetNotRegistered(address target);
|
53
44
|
error ErrorIAccessTargetAuthorityInvalid(address target, address targetAuthority);
|
45
|
+
error ErrorIAccessTargetInstanceMismatch(address target, NftId targetParentNftId, NftId instanceNftId);
|
54
46
|
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {NftId} from "../type/NftId.sol";
|
5
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
6
|
+
|
7
|
+
|
8
|
+
interface IOracle {
|
9
|
+
|
10
|
+
struct RequestInfo {
|
11
|
+
NftId requesterNftId; // originator of the request
|
12
|
+
string callbackMethodName; // callback function of the requestor to call to provide response data
|
13
|
+
NftId oracleNftId; // responsible oracle component
|
14
|
+
bytes requestData;
|
15
|
+
bytes responseData;
|
16
|
+
Timestamp respondedAt; // response timestamp
|
17
|
+
Timestamp expiredAt; // expiry timestamp
|
18
|
+
bool isCancelled;
|
19
|
+
}
|
20
|
+
}
|