@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
@@ -0,0 +1,177 @@
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
2
|
+
|
3
|
+
pragma solidity ^0.8.20;
|
4
|
+
|
5
|
+
/**
|
6
|
+
* @dev This is copy of OpenZeppelin's Contracts (last updated v5.0.0) (proxy/utils/Initializable.sol)
|
7
|
+
* Changes:
|
8
|
+
* 1. name is InitializableCustom
|
9
|
+
* 2. no longer abstract
|
10
|
+
* 3. have $._initializeOwner
|
11
|
+
* 4. have constructor where sets _initializeOwner
|
12
|
+
* 5. initializer() in addition checks for _initializeOwner
|
13
|
+
* 6. reinitializer() is deleted
|
14
|
+
*/
|
15
|
+
abstract contract InitializableCustom {
|
16
|
+
/**
|
17
|
+
* @dev Storage of the initializable contract.
|
18
|
+
*
|
19
|
+
* It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions
|
20
|
+
* when using with upgradeable contracts.
|
21
|
+
*
|
22
|
+
* @custom:storage-location erc7201:openzeppelin.storage.Initializable
|
23
|
+
*/
|
24
|
+
struct InitializableCustomStorage {
|
25
|
+
/**
|
26
|
+
* @dev Indicates that the contract has been initialized.
|
27
|
+
*/
|
28
|
+
uint64 _initialized;
|
29
|
+
/**
|
30
|
+
* @dev Indicates that the contract is in the process of being initialized.
|
31
|
+
*/
|
32
|
+
bool _initializing;
|
33
|
+
/**
|
34
|
+
* @dev Indicates address that can call function with initializer() modifier.
|
35
|
+
*/
|
36
|
+
address _initializeOwner;
|
37
|
+
}
|
38
|
+
|
39
|
+
// keccak256(abi.encode(uint256(keccak256("openzeppelin.storage.InitializableCustom")) - 1)) & ~bytes32(uint256(0xff))
|
40
|
+
bytes32 private constant INITIALIZABLE_CUSTOM_STORAGE = 0x46cd1d813423aaf613c34c7f348d15b2b5e71215e9145b09467e257ea2805a00;
|
41
|
+
|
42
|
+
/**
|
43
|
+
* @dev The contract is already initialized.
|
44
|
+
*/
|
45
|
+
error InvalidInitialization();
|
46
|
+
|
47
|
+
/**
|
48
|
+
* @dev The contract initialization function caller is not authorized.
|
49
|
+
*/
|
50
|
+
error InvalidInitializationCaller();
|
51
|
+
|
52
|
+
/**
|
53
|
+
* @dev The contract is not initializing.
|
54
|
+
*/
|
55
|
+
error NotInitializing();
|
56
|
+
|
57
|
+
/**
|
58
|
+
* @dev Triggered when the contract has been initialized or reinitialized.
|
59
|
+
*/
|
60
|
+
event Initialized(uint64 version);
|
61
|
+
|
62
|
+
/**
|
63
|
+
* @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,
|
64
|
+
* `onlyInitializing` functions can be used to initialize parent contracts.
|
65
|
+
*
|
66
|
+
* Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any
|
67
|
+
* number of times. This behavior in the constructor can be useful during testing and is not expected to be used in
|
68
|
+
* production.
|
69
|
+
*
|
70
|
+
* Emits an {Initialized} event.
|
71
|
+
*/
|
72
|
+
modifier initializer() virtual {
|
73
|
+
// solhint-disable-next-line var-name-mixedcase
|
74
|
+
InitializableCustomStorage storage $ = _getInitializableCustomStorage();
|
75
|
+
|
76
|
+
if($._initializeOwner != msg.sender) {
|
77
|
+
revert InvalidInitializationCaller();
|
78
|
+
}
|
79
|
+
|
80
|
+
// Cache values to avoid duplicated sloads
|
81
|
+
bool isTopLevelCall = !$._initializing;
|
82
|
+
uint64 initialized = $._initialized;
|
83
|
+
|
84
|
+
// Allowed calls:
|
85
|
+
// - initialSetup: the contract is not in the initializing state and no previous version was
|
86
|
+
// initialized
|
87
|
+
// - construction: the contract is initialized at version 1 (no reininitialization) and the
|
88
|
+
// current contract is just being deployed
|
89
|
+
bool initialSetup = initialized == 0 && isTopLevelCall;
|
90
|
+
bool construction = initialized == 1 && address(this).code.length == 0;
|
91
|
+
|
92
|
+
if (!initialSetup && !construction) {
|
93
|
+
revert InvalidInitialization();
|
94
|
+
}
|
95
|
+
$._initialized = 1;
|
96
|
+
if (isTopLevelCall) {
|
97
|
+
$._initializing = true;
|
98
|
+
}
|
99
|
+
_;
|
100
|
+
if (isTopLevelCall) {
|
101
|
+
$._initializing = false;
|
102
|
+
emit Initialized(1);
|
103
|
+
}
|
104
|
+
}
|
105
|
+
|
106
|
+
/**
|
107
|
+
* @dev Modifier to protect an initialization function so that it can only be invoked by functions with the
|
108
|
+
* {initializer} and {reinitializer} modifiers, directly or indirectly.
|
109
|
+
*/
|
110
|
+
modifier onlyInitializing() {
|
111
|
+
_checkInitializing();
|
112
|
+
_;
|
113
|
+
}
|
114
|
+
|
115
|
+
/**
|
116
|
+
* @dev Constructor sets the caller of protected initializer function.
|
117
|
+
*/
|
118
|
+
constructor() {
|
119
|
+
// solhint-disable-previous-line var-name-mixedcase
|
120
|
+
InitializableCustomStorage storage $ = _getInitializableCustomStorage();
|
121
|
+
$._initializeOwner = msg.sender;
|
122
|
+
}
|
123
|
+
|
124
|
+
/**
|
125
|
+
* @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}.
|
126
|
+
*/
|
127
|
+
function _checkInitializing() internal view virtual {
|
128
|
+
if (!_isInitializing()) {
|
129
|
+
revert NotInitializing();
|
130
|
+
}
|
131
|
+
}
|
132
|
+
|
133
|
+
/**
|
134
|
+
* @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.
|
135
|
+
* Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized
|
136
|
+
* to any version. It is recommended to use this to lock implementation contracts that are designed to be called
|
137
|
+
* through proxies.
|
138
|
+
*
|
139
|
+
* Emits an {Initialized} event the first time it is successfully executed.
|
140
|
+
*/
|
141
|
+
function _disableInitializers() internal virtual {
|
142
|
+
// solhint-disable-next-line var-name-mixedcase
|
143
|
+
InitializableCustomStorage storage $ = _getInitializableCustomStorage();
|
144
|
+
|
145
|
+
if ($._initializing) {
|
146
|
+
revert InvalidInitialization();
|
147
|
+
}
|
148
|
+
if ($._initialized != type(uint64).max) {
|
149
|
+
$._initialized = type(uint64).max;
|
150
|
+
emit Initialized(type(uint64).max);
|
151
|
+
}
|
152
|
+
}
|
153
|
+
|
154
|
+
/**
|
155
|
+
* @dev Returns the highest version that has been initialized. See {reinitializer}.
|
156
|
+
*/
|
157
|
+
function _getInitializedVersion() internal view returns (uint64) {
|
158
|
+
return _getInitializableCustomStorage()._initialized;
|
159
|
+
}
|
160
|
+
|
161
|
+
/**
|
162
|
+
* @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.
|
163
|
+
*/
|
164
|
+
function _isInitializing() internal view returns (bool) {
|
165
|
+
return _getInitializableCustomStorage()._initializing;
|
166
|
+
}
|
167
|
+
|
168
|
+
/**
|
169
|
+
* @dev Returns a pointer to the storage namespace.
|
170
|
+
*/
|
171
|
+
// solhint-disable-next-line var-name-mixedcase
|
172
|
+
function _getInitializableCustomStorage() private pure returns (InitializableCustomStorage storage $) {
|
173
|
+
assembly {
|
174
|
+
$.slot := INITIALIZABLE_CUSTOM_STORAGE
|
175
|
+
}
|
176
|
+
}
|
177
|
+
}
|
@@ -12,13 +12,12 @@ import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
|
12
12
|
import {IComponents} from "../instance/module/IComponents.sol";
|
13
13
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
14
14
|
import {IInstance} from "../instance/IInstance.sol";
|
15
|
-
import {
|
15
|
+
import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
16
16
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
17
17
|
import {IRegistry} from "../registry/IRegistry.sol";
|
18
18
|
import {NftId} from "../type/NftId.sol";
|
19
19
|
import {ObjectType, COMPONENT, INSTANCE} from "../type/ObjectType.sol";
|
20
20
|
import {VersionPart} from "../type/Version.sol";
|
21
|
-
import {Registerable} from "../shared/Registerable.sol";
|
22
21
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
23
22
|
import {IAccess} from "../instance/module/IAccess.sol";
|
24
23
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
@@ -34,14 +34,12 @@ contract KeyValueStore is
|
|
34
34
|
revert ErrorKeyValueStoreAlreadyCreated(key32, objectType);
|
35
35
|
}
|
36
36
|
|
37
|
-
address createdBy = msg.sender;
|
38
37
|
Blocknumber blocknumber = blockBlocknumber();
|
39
38
|
StateId initialState = hasLifecycle(objectType) ? getInitialState(objectType) : ACTIVE();
|
40
39
|
|
41
40
|
// set metadata
|
42
41
|
metadata.objectType = objectType;
|
43
42
|
metadata.state = initialState;
|
44
|
-
metadata.updatedBy = createdBy;
|
45
43
|
metadata.updatedIn = blocknumber;
|
46
44
|
metadata.createdIn = blocknumber;
|
47
45
|
|
@@ -49,7 +47,7 @@ contract KeyValueStore is
|
|
49
47
|
_value[key32].data = data;
|
50
48
|
|
51
49
|
// solhint-disable-next-line avoid-tx-origin
|
52
|
-
emit LogInfoCreated(key32.toObjectType(), key32.toKeyId(), initialState,
|
50
|
+
emit LogInfoCreated(key32.toObjectType(), key32.toKeyId(), initialState, msg.sender, tx.origin);
|
53
51
|
}
|
54
52
|
|
55
53
|
|
@@ -100,7 +98,6 @@ contract KeyValueStore is
|
|
100
98
|
}
|
101
99
|
|
102
100
|
// update metadata
|
103
|
-
metadata.updatedBy = msg.sender;
|
104
101
|
metadata.updatedIn = blockBlocknumber();
|
105
102
|
}
|
106
103
|
|
@@ -4,8 +4,8 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
5
|
|
6
6
|
import {NftId} from "../type/NftId.sol";
|
7
|
-
import {ObjectType, COMPONENT, BUNDLE, POLICY, RISK, CLAIM, PAYOUT} from "../type/ObjectType.sol";
|
8
|
-
import {StateId, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID} from "../type/StateId.sol";
|
7
|
+
import {ObjectType, COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT} from "../type/ObjectType.sol";
|
8
|
+
import {StateId, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
|
9
9
|
import {ILifecycle} from "./ILifecycle.sol";
|
10
10
|
|
11
11
|
contract Lifecycle is
|
@@ -27,6 +27,7 @@ contract Lifecycle is
|
|
27
27
|
_setupPolicyLifecycle();
|
28
28
|
_setupClaimAndPayoutLifecycle();
|
29
29
|
_setupRiskLifecycle();
|
30
|
+
_setupRequestLifecycle();
|
30
31
|
}
|
31
32
|
|
32
33
|
function hasLifecycle(
|
@@ -118,4 +119,12 @@ contract Lifecycle is
|
|
118
119
|
_isValidTransition[RISK()][PAUSED()][ACTIVE()] = true;
|
119
120
|
_isValidTransition[RISK()][PAUSED()][ARCHIVED()] = true;
|
120
121
|
}
|
122
|
+
|
123
|
+
function _setupRequestLifecycle() internal {
|
124
|
+
_initialState[REQUEST()] = ACTIVE();
|
125
|
+
_isValidTransition[REQUEST()][ACTIVE()][FULFILLED()] = true;
|
126
|
+
_isValidTransition[REQUEST()][ACTIVE()][FAILED()] = true;
|
127
|
+
_isValidTransition[REQUEST()][FAILED()][FULFILLED()] = true;
|
128
|
+
_isValidTransition[REQUEST()][ACTIVE()][CANCELLED()] = true;
|
129
|
+
}
|
121
130
|
}
|
@@ -22,12 +22,8 @@ contract NftIdSetManager {
|
|
22
22
|
_;
|
23
23
|
}
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
revert ErrorNftIdSetManagerOwnerAlreadySet(_owner);
|
28
|
-
}
|
29
|
-
|
30
|
-
_owner = owner;
|
25
|
+
constructor() {
|
26
|
+
_owner = msg.sender;
|
31
27
|
}
|
32
28
|
|
33
29
|
function add(NftId objectNftId) external onlyOwner {
|
@@ -56,20 +56,9 @@ contract NftOwnable is
|
|
56
56
|
function linkToRegisteredNftId()
|
57
57
|
public
|
58
58
|
virtual
|
59
|
+
returns (NftId nftId)
|
59
60
|
{
|
60
|
-
|
61
|
-
|
62
|
-
if ($._nftId.gtz()) {
|
63
|
-
revert ErrorNftOwnableAlreadyLinked($._nftId);
|
64
|
-
}
|
65
|
-
|
66
|
-
address contractAddress = address(this);
|
67
|
-
|
68
|
-
if (!getRegistry().isRegistered(contractAddress)) {
|
69
|
-
revert ErrorNftOwnableContractNotRegistered(contractAddress);
|
70
|
-
}
|
71
|
-
|
72
|
-
$._nftId = getRegistry().getNftId(contractAddress);
|
61
|
+
return _linkToNftOwnable(address(this));
|
73
62
|
}
|
74
63
|
|
75
64
|
function getNftId() public view virtual override returns (NftId) {
|
@@ -12,11 +12,12 @@ import {IPolicyHolder} from "./IPolicyHolder.sol";
|
|
12
12
|
import {NftId} from "../type/NftId.sol";
|
13
13
|
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
14
14
|
import {RegistryLinked} from "./RegistryLinked.sol";
|
15
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
15
16
|
|
16
17
|
/// @dev template implementation for IPolicyHolder
|
17
18
|
contract PolicyHolder is
|
18
19
|
ERC165,
|
19
|
-
RegistryLinked,
|
20
|
+
RegistryLinked, // TODO need upgradeable version
|
20
21
|
IPolicyHolder
|
21
22
|
{
|
22
23
|
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.PolicyHolder")) - 1)) & ~bytes32(uint256(0xff));
|
@@ -2,7 +2,6 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
|
5
|
-
import {Create2} from "@openzeppelin/contracts/utils/Create2.sol";
|
6
5
|
|
7
6
|
import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
|
8
7
|
import {IVersionable} from "./IVersionable.sol";
|
@@ -12,6 +11,7 @@ import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.s
|
|
12
11
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
13
12
|
import {UpgradableProxyWithAdmin} from "./UpgradableProxyWithAdmin.sol";
|
14
13
|
import {Version, VersionLib} from "../type/Version.sol";
|
14
|
+
import {NftId} from "../type/NftId.sol";
|
15
15
|
|
16
16
|
/// @dev manages proxy deployments for upgradable contracs of type IVersionable
|
17
17
|
contract ProxyManager is
|
@@ -132,6 +132,10 @@ contract ProxyManager is
|
|
132
132
|
|
133
133
|
}
|
134
134
|
|
135
|
+
function linkToProxy() public returns (NftId) {
|
136
|
+
return _linkToNftOwnable(address(_proxy));
|
137
|
+
}
|
138
|
+
|
135
139
|
function getDeployData(address proxyOwner, bytes memory deployData) public pure returns (bytes memory data) {
|
136
140
|
return abi.encodeWithSelector(
|
137
141
|
IVersionable.initializeVersionable.selector,
|
@@ -145,7 +149,7 @@ contract ProxyManager is
|
|
145
149
|
upgradeData);
|
146
150
|
}
|
147
151
|
|
148
|
-
function getProxy() public returns (UpgradableProxyWithAdmin) {
|
152
|
+
function getProxy() public view returns (UpgradableProxyWithAdmin) {
|
149
153
|
return _proxy;
|
150
154
|
}
|
151
155
|
|
@@ -1,20 +1,18 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
5
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
6
|
|
7
|
-
import {
|
8
|
-
import {NftId} from "../type/NftId.sol";
|
9
|
-
import {Version, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
|
10
|
-
|
11
|
-
import {Versionable} from "./Versionable.sol";
|
7
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
12
8
|
import {IService} from "./IService.sol";
|
13
9
|
import {IVersionable} from "./IVersionable.sol";
|
14
|
-
import {
|
10
|
+
import {NftId} from "../type/NftId.sol";
|
11
|
+
import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
|
15
12
|
import {Registerable} from "./Registerable.sol";
|
16
|
-
|
17
|
-
import {
|
13
|
+
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
14
|
+
import {Version, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
|
15
|
+
import {Versionable} from "./Versionable.sol";
|
18
16
|
|
19
17
|
|
20
18
|
/// @dev service base contract
|
@@ -27,15 +25,6 @@ abstract contract Service is
|
|
27
25
|
|
28
26
|
uint8 private constant GIF_MAJOR_VERSION = 3;
|
29
27
|
|
30
|
-
// from Versionable
|
31
|
-
function getVersion()
|
32
|
-
public
|
33
|
-
pure
|
34
|
-
virtual override (IVersionable, Versionable)
|
35
|
-
returns(Version)
|
36
|
-
{
|
37
|
-
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
38
|
-
}
|
39
28
|
|
40
29
|
function initializeService(
|
41
30
|
address registry,
|
@@ -58,9 +47,7 @@ abstract contract Service is
|
|
58
47
|
if(authority != address(0)) {
|
59
48
|
__AccessManaged_init(authority);
|
60
49
|
} else {
|
61
|
-
address registryServiceAddress =
|
62
|
-
REGISTRY(),
|
63
|
-
VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
|
50
|
+
address registryServiceAddress = _getServiceAddress(REGISTRY());
|
64
51
|
|
65
52
|
// copy authority from already registered registry services
|
66
53
|
__AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
|
@@ -70,8 +57,27 @@ abstract contract Service is
|
|
70
57
|
registerInterface(type(IService).interfaceId);
|
71
58
|
}
|
72
59
|
|
60
|
+
function getDomain() external virtual pure returns(ObjectType serviceDomain) {
|
61
|
+
return _getDomain();
|
62
|
+
}
|
63
|
+
|
64
|
+
function getRoleId() external virtual pure returns(RoleId serviceRoleId) {
|
65
|
+
return RoleIdLib.roleForTypeAndVersion(_getDomain(), VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
|
66
|
+
}
|
67
|
+
|
68
|
+
// from Versionable
|
69
|
+
function getVersion()
|
70
|
+
public
|
71
|
+
pure
|
72
|
+
virtual override (IVersionable, Versionable)
|
73
|
+
returns(Version)
|
74
|
+
{
|
75
|
+
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
76
|
+
}
|
77
|
+
|
78
|
+
function _getDomain() internal virtual pure returns (ObjectType);
|
73
79
|
|
74
80
|
function _getServiceAddress(ObjectType domain) internal view returns (address) {
|
75
|
-
return getRegistry().getServiceAddress(domain,
|
81
|
+
return getRegistry().getServiceAddress(domain, VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
|
76
82
|
}
|
77
83
|
}
|
@@ -2,7 +2,6 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
|
6
5
|
import {IComponent} from "../shared/IComponent.sol";
|
7
6
|
import {IVersionable} from "../shared/IVersionable.sol";
|
8
7
|
import {NftId} from "../type/NftId.sol";
|
@@ -10,20 +9,36 @@ import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
|
|
10
9
|
import {ObjectType} from "../type/ObjectType.sol";
|
11
10
|
import {Seconds} from "../type/Seconds.sol";
|
12
11
|
import {StakingReader} from "./StakingReader.sol";
|
12
|
+
import {StakingStore} from "./StakingStore.sol";
|
13
13
|
import {Timestamp} from "../type/Timestamp.sol";
|
14
14
|
import {UFixed} from "../type/UFixed.sol";
|
15
15
|
|
16
16
|
interface IStaking is
|
17
|
-
IKeyValueStore,
|
18
17
|
IComponent,
|
19
18
|
IVersionable
|
20
19
|
{
|
20
|
+
// staking rate
|
21
|
+
event LogStakingStakingRateSet(uint256 chainId, address token, UFixed oldStakingRate, UFixed newStakingRate);
|
21
22
|
|
22
|
-
|
23
|
-
event LogStakingLockingPeriodSet(NftId targetNftId, Seconds
|
23
|
+
// target parameters
|
24
|
+
event LogStakingLockingPeriodSet(NftId targetNftId, Seconds oldLockingPeriod, Seconds lockingPeriod);
|
25
|
+
event LogStakingRewardRateSet(NftId targetNftId, UFixed oldRewardRate, UFixed rewardRate);
|
24
26
|
|
25
|
-
|
27
|
+
// modifiers
|
28
|
+
error ErrorStakingNotStake(NftId stakeNftId);
|
29
|
+
error ErrorStakingNotTarget(NftId targetNftId);
|
30
|
+
|
31
|
+
error ErrorStakingNotStakingOwner();
|
26
32
|
error ErrorStakingNotNftOwner(NftId nftId);
|
33
|
+
|
34
|
+
// staking rate
|
35
|
+
error ErrorStakingTokenNotRegistered(uint256 chainId, address token);
|
36
|
+
|
37
|
+
// check dip balance and allowance
|
38
|
+
error ErrorStakingDipBalanceInsufficient(address owner, uint256 amount, uint256 dipBalance);
|
39
|
+
error ErrorStakingDipAllowanceInsufficient(address owner, address tokenHandler, uint256 amount, uint256 dipAllowance);
|
40
|
+
|
41
|
+
error ErrorStakingStakingReaderStakingMismatch(address stakingByStakingReader);
|
27
42
|
error ErrorStakingTargetAlreadyRegistered(NftId targetNftId);
|
28
43
|
error ErrorStakingTargetNftIdZero();
|
29
44
|
error ErrorStakingTargetTypeNotSupported(NftId targetNftId, ObjectType objectType);
|
@@ -34,12 +49,12 @@ interface IStaking is
|
|
34
49
|
error ErrorStakingTargetNotFound(NftId targetNftId);
|
35
50
|
error ErrorStakingTargetTokenNotFound(NftId targetNftId, uint256 chainId, address token);
|
36
51
|
|
52
|
+
error ErrorStakingTargetNotActive(NftId targetNftId);
|
53
|
+
error ErrorStakingStakeAmountZero(NftId targetNftId);
|
54
|
+
|
37
55
|
// info for individual stake
|
38
56
|
struct StakeInfo {
|
39
|
-
Amount stakeAmount;
|
40
|
-
Amount rewardAmount;
|
41
57
|
Timestamp lockedUntil;
|
42
|
-
Timestamp rewardsUpdatedAt;
|
43
58
|
}
|
44
59
|
|
45
60
|
struct TargetInfo {
|
@@ -47,16 +62,14 @@ interface IStaking is
|
|
47
62
|
uint256 chainId;
|
48
63
|
Seconds lockingPeriod;
|
49
64
|
UFixed rewardRate;
|
50
|
-
Amount rewardReserveAmount;
|
51
65
|
}
|
52
66
|
|
53
|
-
// rate management
|
67
|
+
// staking rate management
|
68
|
+
|
69
|
+
/// @dev sets the rate that converts 1 token of total value locked into the
|
70
|
+
/// the required staked dip amount to back up the locked token value
|
54
71
|
function setStakingRate(uint256 chainId, address token, UFixed stakingRate) external;
|
55
72
|
|
56
|
-
// reward management
|
57
|
-
function setRewardRate(NftId targetNftId, UFixed rewardRate) external;
|
58
|
-
function refillRewardReserves(NftId targetNftId, Amount dipAmount) external;
|
59
|
-
function withdrawRewardReserves(NftId targetNftId, Amount dipAmount) external;
|
60
73
|
|
61
74
|
// target management
|
62
75
|
|
@@ -70,44 +83,86 @@ interface IStaking is
|
|
70
83
|
|
71
84
|
|
72
85
|
/// @dev set the stake locking period to the specified duration.
|
73
|
-
/// permissioned: only the
|
86
|
+
/// permissioned: only the staking service may call this function
|
74
87
|
function setLockingPeriod(NftId targetNftId, Seconds lockingPeriod) external;
|
75
88
|
|
76
|
-
|
77
|
-
|
89
|
+
/// @dev update the target specific reward rate.
|
90
|
+
/// permissioned: only the staking service may call this function
|
91
|
+
function setRewardRate(NftId targetNftId, UFixed rewardRate) external;
|
92
|
+
|
93
|
+
/// @dev (re)fills the staking reward reserves for the specified target
|
94
|
+
/// unpermissioned: anybody may fill up staking reward reserves
|
95
|
+
function refillRewardReserves(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
|
96
|
+
|
97
|
+
/// @dev defunds the staking reward reserves for the specified target
|
98
|
+
/// permissioned: only the staking service may call this function
|
99
|
+
function withdrawRewardReserves(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
|
100
|
+
|
101
|
+
|
102
|
+
/// @dev increases the total value locked amount for the specified target by the provided token amount.
|
103
|
+
/// function is called when a new policy is collateralized.
|
104
|
+
/// function restricted to the pool service.
|
105
|
+
function increaseTotalValueLocked(NftId targetNftId, address token, Amount amount) external returns (Amount newBalance);
|
106
|
+
|
107
|
+
|
108
|
+
/// @dev decreases the total value locked amount for the specified target by the provided token amount.
|
109
|
+
/// function is called when a new policy is closed or payouts are executed.
|
110
|
+
/// function restricted to the pool service.
|
111
|
+
function decreaseTotalValueLocked(NftId targetNftId, address token, Amount amount) external returns (Amount newBalance);
|
112
|
+
|
78
113
|
|
79
114
|
function updateRemoteTvl(NftId targetNftId, address token, Amount amount) external;
|
80
115
|
|
81
116
|
// staking functions
|
82
117
|
|
83
|
-
/// @dev
|
118
|
+
/// @dev creat a new stake info object
|
84
119
|
/// permissioned: only staking service may call this function.
|
85
|
-
function
|
86
|
-
|
87
|
-
function stake(NftId stakeNftId, Amount dipAmount) external;
|
88
|
-
function restakeRewards(NftId stakeNftId) external;
|
89
|
-
function restakeToNewTarget(NftId stakeNftId, NftId newTarget) external;
|
90
|
-
function unstake(NftId stakeNftId) external;
|
91
|
-
function unstake(NftId stakeNftId, Amount dipAmount) external;
|
92
|
-
function claimRewards(NftId stakeNftId) external;
|
120
|
+
function createStake(NftId stakeNftId, NftId targetNftId, Amount dipAmount) external;
|
93
121
|
|
94
|
-
|
122
|
+
/// @dev increase the staked dip by dipAmount for the specified stake.
|
123
|
+
/// staking rewards are updated and added to the staked dips as well.
|
124
|
+
/// the function returns the new total amount of staked dips.
|
125
|
+
function stake(NftId stakeNftId, Amount dipAmount) external returns (Amount stakeBalance);
|
95
126
|
|
96
|
-
|
127
|
+
/// @dev restakes the dips to a new target.
|
128
|
+
/// the sum of the staked dips and the accumulated rewards will be restaked.
|
129
|
+
/// permissioned: only staking service may call this function.
|
130
|
+
function restake(NftId stakeNftId, NftId newTargetNftId) external returns (NftId newStakeNftId);
|
97
131
|
|
98
|
-
|
99
|
-
|
132
|
+
/// @dev retuns the specified amount of dips to the holder of the specified stake nft.
|
133
|
+
/// if dipAmount is set to Amount.max() all staked dips and all rewards are transferred to
|
134
|
+
/// permissioned: only staking service may call this function.
|
135
|
+
function unstake(NftId stakeNftId)
|
136
|
+
external
|
137
|
+
returns (
|
138
|
+
Amount unstakedAmount,
|
139
|
+
Amount rewardsClaimedAmount
|
140
|
+
);
|
141
|
+
|
142
|
+
/// @dev update stake rewards for current time.
|
143
|
+
/// may be called before an announement of a decrease of a reward rate reduction.
|
144
|
+
/// calling this functions ensures that reward balance is updated using the current (higher) reward rate.
|
145
|
+
/// unpermissioned.
|
146
|
+
function updateRewards(NftId stakeNftId) external;
|
147
|
+
|
148
|
+
/// @dev transfers all rewards accumulated so far to the holder of the specified stake nft.
|
149
|
+
/// permissioned: only staking service may call this function.
|
150
|
+
function claimRewards(NftId stakeNftId)
|
151
|
+
external
|
152
|
+
returns (
|
153
|
+
Amount rewardsClaimedAmount
|
154
|
+
);
|
100
155
|
|
101
|
-
|
156
|
+
//--- helper functions --------------------------------------------------//
|
102
157
|
|
103
|
-
|
104
|
-
function
|
158
|
+
/// @dev transfers the specified amount of dips from the from address to the staking wallet.
|
159
|
+
function collectDipAmount(address from, Amount dipAmount) external;
|
105
160
|
|
106
|
-
|
161
|
+
/// @dev transfers the specified amount of dips from the staking wallet to the to addess.
|
162
|
+
function transferDipAmount(address to, Amount dipAmount) external;
|
107
163
|
|
108
|
-
|
109
|
-
NftId targetNftId,
|
110
|
-
Timestamp rewardsLastUpdatedAt
|
111
|
-
) external view returns (Amount rewardIncrementAmount);
|
164
|
+
//--- view and pure functions -------------------------------------------//
|
112
165
|
|
166
|
+
function getStakingStore() external view returns (StakingStore stakingStore);
|
167
|
+
function getStakingReader() external view returns (StakingReader reader);
|
113
168
|
}
|