@etherisc/gif-next 0.0.2-b8e869c-076 → 0.0.2-b95860d-028
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 +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +105 -65
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -32
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +148 -222
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +88 -186
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +174 -237
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +99 -111
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +75 -57
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +78 -31
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1551 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2090 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1484 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1244 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2108 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +48 -31
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +29 -84
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +51 -105
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +165 -138
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +446 -81
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +77 -242
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -87
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +335 -126
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +130 -204
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +71 -53
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +84 -182
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -159
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +75 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +107 -190
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +82 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +184 -185
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +120 -104
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +53 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +96 -50
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +200 -135
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +107 -177
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +296 -296
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +102 -94
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +71 -152
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -84
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +143 -200
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +288 -188
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +119 -103
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +29 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +161 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +141 -16
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +129 -70
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +29 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +257 -218
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +110 -110
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +199 -309
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +96 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +143 -200
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +65 -138
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +69 -77
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +286 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +0 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +492 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +283 -143
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +78 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -75
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +129 -221
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +63 -157
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +351 -263
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +120 -110
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +50 -28
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +321 -19
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +71 -53
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +84 -182
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +47 -112
- 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/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +77 -29
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +83 -30
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +166 -206
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +102 -87
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +71 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +71 -79
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +169 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +54 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +32 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- 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 +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +15 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +55 -70
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +64 -59
- package/contracts/authorization/Authorization.sol +111 -39
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -3
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +2 -1
- package/contracts/distribution/Distribution.sol +5 -15
- package/contracts/distribution/DistributionService.sol +79 -47
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionService.sol +8 -2
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +75 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +412 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/IInstance.sol +4 -1
- package/contracts/instance/IInstanceService.sol +0 -20
- package/contracts/instance/Instance.sol +21 -12
- package/contracts/instance/InstanceAdmin.sol +22 -30
- package/contracts/instance/InstanceAuthorizationV3.sol +11 -21
- package/contracts/instance/InstanceReader.sol +106 -19
- package/contracts/instance/InstanceService.sol +24 -81
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/base/ObjectLifecycle.sol +7 -1
- package/contracts/instance/module/IComponents.sol +10 -5
- package/contracts/instance/module/IPolicy.sol +23 -23
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +6 -16
- package/contracts/oracle/OracleService.sol +47 -34
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +14 -26
- package/contracts/pool/BasicPoolAuthorization.sol +0 -1
- package/contracts/pool/BundleService.sol +40 -15
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +9 -0
- package/contracts/pool/IPoolComponent.sol +18 -8
- package/contracts/pool/IPoolService.sol +24 -20
- package/contracts/pool/Pool.sol +53 -46
- package/contracts/pool/PoolService.sol +106 -122
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +13 -12
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +7 -6
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +268 -93
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IClaimService.sol +30 -7
- package/contracts/product/IPolicyService.sol +16 -20
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +23 -4
- package/contracts/product/PolicyService.sol +197 -98
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +45 -52
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +106 -61
- package/contracts/product/RiskService.sol +4 -5
- package/contracts/product/RiskServiceManager.sol +4 -4
- package/contracts/registry/ChainNft.sol +65 -36
- package/contracts/registry/IRegistry.sol +55 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +0 -1
- package/contracts/registry/Registry.sol +342 -201
- package/contracts/registry/RegistryAdmin.sol +124 -50
- package/contracts/registry/RegistryService.sol +35 -46
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +204 -188
- package/contracts/registry/ServiceAuthorizationV3.sol +16 -22
- package/contracts/shared/Component.sol +27 -19
- package/contracts/shared/ComponentService.sol +231 -137
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +23 -14
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +6 -2
- package/contracts/shared/IComponentService.sol +25 -13
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -11
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +72 -31
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +23 -7
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +19 -9
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +20 -18
- package/contracts/staking/IStaking.sol +2 -1
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -0
- package/contracts/staking/Staking.sol +8 -8
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +3 -17
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/ObjectType.sol +16 -11
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/UFixed.sol +4 -0
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +2 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -6,6 +6,7 @@ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Ini
|
|
6
6
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
7
7
|
import {NftOwnable} from "../shared/NftOwnable.sol";
|
8
8
|
import {ObjectType} from "../type/ObjectType.sol";
|
9
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
9
10
|
|
10
11
|
import {IRegistry} from "../registry/IRegistry.sol";
|
11
12
|
import {IRegisterable} from "./IRegisterable.sol";
|
@@ -14,6 +15,8 @@ contract Registerable is
|
|
14
15
|
NftOwnable,
|
15
16
|
IRegisterable
|
16
17
|
{
|
18
|
+
uint256 public constant GIF_RELEASE = 3;
|
19
|
+
|
17
20
|
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.Registerable.sol")) - 1)) & ~bytes32(uint256(0xff));
|
18
21
|
bytes32 public constant REGISTERABLE_LOCATION_V1 = 0x6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa300;
|
19
22
|
|
@@ -24,21 +27,21 @@ contract Registerable is
|
|
24
27
|
bytes _data;
|
25
28
|
}
|
26
29
|
|
27
|
-
function
|
28
|
-
address
|
30
|
+
function _initializeRegisterable(
|
31
|
+
address registry,
|
29
32
|
NftId parentNftId,
|
30
33
|
ObjectType objectType,
|
31
34
|
bool isInterceptor,
|
32
35
|
address initialOwner,
|
33
|
-
bytes memory
|
36
|
+
bytes memory data // writeonly data that will saved in the object info record of the registry
|
34
37
|
)
|
35
|
-
|
38
|
+
internal
|
36
39
|
virtual
|
37
|
-
onlyInitializing
|
40
|
+
onlyInitializing()
|
38
41
|
{
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
+
_initializeNftOwnable(
|
43
|
+
registry,
|
44
|
+
initialOwner);
|
42
45
|
|
43
46
|
RegisterableStorage storage $;
|
44
47
|
assembly {
|
@@ -48,10 +51,17 @@ contract Registerable is
|
|
48
51
|
$._parentNftId = parentNftId;
|
49
52
|
$._objectType = objectType;
|
50
53
|
$._isInterceptor = isInterceptor;
|
51
|
-
$._data =
|
54
|
+
$._data = data;
|
55
|
+
}
|
56
|
+
|
57
|
+
|
58
|
+
/// @inheritdoc IRegisterable
|
59
|
+
function getRelease() public virtual pure returns (VersionPart release) {
|
60
|
+
return VersionPartLib.toVersionPart(GIF_RELEASE);
|
52
61
|
}
|
53
62
|
|
54
63
|
|
64
|
+
/// @inheritdoc IRegisterable
|
55
65
|
function getInitialInfo()
|
56
66
|
public
|
57
67
|
view
|
@@ -10,14 +10,15 @@ contract RegistryLinked is
|
|
10
10
|
IRegistryLinked
|
11
11
|
{
|
12
12
|
|
13
|
+
// priorize simplicity and size over using standard upgradeability structs
|
13
14
|
IRegistry private _registry;
|
14
15
|
|
15
16
|
/// @dev initialization for upgradable contracts
|
16
17
|
// used in _initializeRegisterable
|
17
|
-
function
|
18
|
+
function _initializeRegistryLinked(
|
18
19
|
address registryAddress
|
19
20
|
)
|
20
|
-
|
21
|
+
internal
|
21
22
|
virtual
|
22
23
|
onlyInitializing()
|
23
24
|
{
|
@@ -3,6 +3,7 @@ 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
|
+
import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
|
6
7
|
|
7
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
8
9
|
import {IService} from "./IService.sol";
|
@@ -19,28 +20,20 @@ abstract contract Service is
|
|
19
20
|
Registerable,
|
20
21
|
Versionable,
|
21
22
|
AccessManagedUpgradeable,
|
23
|
+
ReentrancyGuardUpgradeable,
|
22
24
|
IService
|
23
25
|
{
|
24
26
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
function initializeService(
|
27
|
+
function _initializeService(
|
29
28
|
address registry,
|
30
29
|
address authority, // real authority for registry service adress(0) for other services
|
31
30
|
address initialOwner
|
32
31
|
)
|
33
|
-
|
32
|
+
internal
|
34
33
|
virtual
|
35
34
|
onlyInitializing()
|
36
35
|
{
|
37
|
-
|
38
|
-
registry,
|
39
|
-
IRegistry(registry).getNftId(),
|
40
|
-
SERVICE(),
|
41
|
-
false, // is interceptor
|
42
|
-
initialOwner,
|
43
|
-
""); // data
|
36
|
+
__ReentrancyGuard_init();
|
44
37
|
|
45
38
|
// externally provided authority
|
46
39
|
if(authority != address(0)) {
|
@@ -52,8 +45,17 @@ abstract contract Service is
|
|
52
45
|
__AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
|
53
46
|
}
|
54
47
|
|
55
|
-
|
56
|
-
|
48
|
+
_initializeRegisterable(
|
49
|
+
registry,
|
50
|
+
IRegistry(registry).getNftId(),
|
51
|
+
SERVICE(),
|
52
|
+
false, // is interceptor
|
53
|
+
initialOwner,
|
54
|
+
""); // data
|
55
|
+
|
56
|
+
|
57
|
+
_registerInterface(type(IAccessManaged).interfaceId);
|
58
|
+
_registerInterface(type(IService).interfaceId);
|
57
59
|
}
|
58
60
|
|
59
61
|
function getDomain() external virtual pure returns(ObjectType serviceDomain) {
|
@@ -61,22 +63,22 @@ abstract contract Service is
|
|
61
63
|
}
|
62
64
|
|
63
65
|
function getRoleId() external virtual pure returns(RoleId serviceRoleId) {
|
64
|
-
return RoleIdLib.roleForTypeAndVersion(_getDomain(),
|
66
|
+
return RoleIdLib.roleForTypeAndVersion(_getDomain(), getRelease());
|
65
67
|
}
|
66
68
|
|
67
|
-
|
69
|
+
/// @inheritdoc IVersionable
|
68
70
|
function getVersion()
|
69
71
|
public
|
70
72
|
pure
|
71
73
|
virtual override (IVersionable, Versionable)
|
72
74
|
returns(Version)
|
73
75
|
{
|
74
|
-
return VersionLib.toVersion(
|
76
|
+
return VersionLib.toVersion(GIF_RELEASE,0,0);
|
75
77
|
}
|
76
78
|
|
77
79
|
function _getDomain() internal virtual pure returns (ObjectType);
|
78
80
|
|
79
81
|
function _getServiceAddress(ObjectType domain) internal view returns (address) {
|
80
|
-
return getRegistry().getServiceAddress(domain,
|
82
|
+
return getRegistry().getServiceAddress(domain, getRelease());
|
81
83
|
}
|
82
84
|
}
|
@@ -42,8 +42,9 @@ interface IStaking is
|
|
42
42
|
error ErrorStakingTargetNftIdZero();
|
43
43
|
error ErrorStakingTargetTypeNotSupported(NftId targetNftId, ObjectType objectType);
|
44
44
|
error ErrorStakingTargetUnexpectedObjectType(NftId targetNftId, ObjectType expectedObjectType, ObjectType actualObjectType);
|
45
|
-
error
|
45
|
+
error ErrorStakingLockingPeriodTooShort(NftId targetNftId, Seconds minLockingPeriod, Seconds lockingPeriod);
|
46
46
|
error ErrorStakingLockingPeriodTooLong(NftId targetNftId, Seconds maxLockingPeriod, Seconds lockingPeriod);
|
47
|
+
error ErrorStakingStakeLocked(NftId stakeNftId, Timestamp lockedUntil);
|
47
48
|
error ErrorStakingRewardRateTooHigh(NftId targetNftId, UFixed maxRewardRate, UFixed rewardRate);
|
48
49
|
error ErrorStakingTargetNotFound(NftId targetNftId);
|
49
50
|
error ErrorStakingTargetTokenNotFound(NftId targetNftId, uint256 chainId, address token);
|
@@ -7,9 +7,7 @@ import {Amount} from "../type/Amount.sol";
|
|
7
7
|
import {IService} from "../shared/IService.sol";
|
8
8
|
import {IStaking} from "./IStaking.sol";
|
9
9
|
import {NftId} from "../type/NftId.sol";
|
10
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
11
10
|
import {Seconds} from "../type/Seconds.sol";
|
12
|
-
import {Timestamp} from "../type/Timestamp.sol";
|
13
11
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
14
12
|
import {UFixed} from "../type/UFixed.sol";
|
15
13
|
|
@@ -33,7 +31,6 @@ interface IStakingService is IService
|
|
33
31
|
event LogStakingServiceRewardsClaimed(NftId stakeNftId, address stakeOwner, Amount rewardsClaimedAmount);
|
34
32
|
|
35
33
|
// modifiers
|
36
|
-
error ErrorStakingServiceNotNftOwner(NftId nftId, address expectedOwner, address owner);
|
37
34
|
error ErrorStakingServiceNotStaking(address stakingAddress);
|
38
35
|
error ErrorStakingServiceNotSupportingIStaking(address stakingAddress);
|
39
36
|
|
@@ -114,6 +114,24 @@ library StakeManagerLib {
|
|
114
114
|
lockingPeriod = info.lockingPeriod;
|
115
115
|
}
|
116
116
|
|
117
|
+
function checkUnstakeParameters(
|
118
|
+
StakingReader stakingReader,
|
119
|
+
NftId stakeNftId
|
120
|
+
)
|
121
|
+
public
|
122
|
+
view
|
123
|
+
returns (
|
124
|
+
UFixed rewardRate,
|
125
|
+
Seconds lockingPeriod
|
126
|
+
)
|
127
|
+
{
|
128
|
+
IStaking.StakeInfo memory stakeInfo = stakingReader.getStakeInfo(stakeNftId);
|
129
|
+
|
130
|
+
if (stakeInfo.lockedUntil > TimestampLib.blockTimestamp()) {
|
131
|
+
revert IStaking.ErrorStakingStakeLocked(stakeNftId, stakeInfo.lockedUntil);
|
132
|
+
}
|
133
|
+
}
|
134
|
+
|
117
135
|
|
118
136
|
function checkTarget(
|
119
137
|
StakingReader stakingReader,
|
@@ -30,7 +30,6 @@ contract Staking is
|
|
30
30
|
IStaking
|
31
31
|
{
|
32
32
|
string public constant CONTRACT_NAME = "Staking";
|
33
|
-
uint8 private constant GIF_MAJOR_VERSION = 3;
|
34
33
|
|
35
34
|
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Staking.sol")) - 1)) & ~bytes32(uint256(0xff));
|
36
35
|
bytes32 public constant STAKING_LOCATION_V1 = 0xafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f00;
|
@@ -350,9 +349,10 @@ contract Staking is
|
|
350
349
|
Amount rewardsClaimedAmount
|
351
350
|
)
|
352
351
|
{
|
353
|
-
// TODO add check that stake locking is in the past
|
354
352
|
StakingStorage storage $ = _getStakingStorage();
|
355
|
-
|
353
|
+
|
354
|
+
StakeManagerLib.checkUnstakeParameters($._reader, stakeNftId);
|
355
|
+
|
356
356
|
// update rewards since last update
|
357
357
|
NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
|
358
358
|
|
@@ -415,7 +415,7 @@ contract Staking is
|
|
415
415
|
virtual override (IVersionable, Versionable)
|
416
416
|
returns(Version)
|
417
417
|
{
|
418
|
-
return VersionLib.toVersion(
|
418
|
+
return VersionLib.toVersion(GIF_RELEASE,0,0);
|
419
419
|
}
|
420
420
|
|
421
421
|
//--- internal functions ------------------------------------------------//
|
@@ -450,7 +450,7 @@ contract Staking is
|
|
450
450
|
)
|
451
451
|
internal
|
452
452
|
virtual override
|
453
|
-
initializer
|
453
|
+
initializer()
|
454
454
|
{
|
455
455
|
(
|
456
456
|
address registryAddress,
|
@@ -465,10 +465,10 @@ contract Staking is
|
|
465
465
|
TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
466
466
|
address dipTokenAddress = tokenRegistry.getDipTokenAddress();
|
467
467
|
|
468
|
-
|
468
|
+
_initializeComponent(
|
469
469
|
authority,
|
470
470
|
registryAddress,
|
471
|
-
registry.getNftId(),
|
471
|
+
registry.getNftId(), // parent nft id
|
472
472
|
CONTRACT_NAME,
|
473
473
|
dipTokenAddress,
|
474
474
|
STAKING(),
|
@@ -485,7 +485,7 @@ contract Staking is
|
|
485
485
|
$._tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
486
486
|
$._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(dipTokenAddress, authority);
|
487
487
|
|
488
|
-
|
488
|
+
_registerInterface(type(IStaking).interfaceId);
|
489
489
|
}
|
490
490
|
|
491
491
|
|
@@ -18,9 +18,9 @@ contract StakingManager is
|
|
18
18
|
address registry,
|
19
19
|
address tokenRegistry,
|
20
20
|
address stakingStore,
|
21
|
-
address initialOwner
|
21
|
+
address initialOwner,
|
22
|
+
bytes32 salt
|
22
23
|
)
|
23
|
-
ProxyManager(registry)
|
24
24
|
{
|
25
25
|
Staking stakingImplementation = new Staking();
|
26
26
|
|
@@ -30,10 +30,12 @@ contract StakingManager is
|
|
30
30
|
tokenRegistry,
|
31
31
|
stakingStore,
|
32
32
|
initialOwner);
|
33
|
-
|
34
|
-
IVersionable versionable =
|
35
|
-
|
36
|
-
|
33
|
+
|
34
|
+
IVersionable versionable = initialize(
|
35
|
+
registry,
|
36
|
+
_initialImplementation,
|
37
|
+
_initializationData,
|
38
|
+
salt);
|
37
39
|
|
38
40
|
_staking = Staking(address(versionable));
|
39
41
|
}
|
@@ -1,13 +1,14 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
|
+
|
4
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
5
7
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
6
8
|
import {IStaking} from "../staking/IStaking.sol";
|
7
9
|
|
8
10
|
import {Amount} from "../type/Amount.sol";
|
9
11
|
import {Blocknumber} from "../type/Blocknumber.sol";
|
10
|
-
import {InitializableCustom} from "../shared/InitializableCustom.sol";
|
11
12
|
import {NftId} from "../type/NftId.sol";
|
12
13
|
import {STAKE, TARGET} from "../type/ObjectType.sol";
|
13
14
|
import {StakingStore} from "./StakingStore.sol";
|
@@ -16,16 +17,18 @@ import {UFixed} from "../type/UFixed.sol";
|
|
16
17
|
|
17
18
|
contract StakingReader is
|
18
19
|
IRegistryLinked,
|
19
|
-
|
20
|
+
Initializable
|
20
21
|
{
|
21
22
|
|
22
|
-
error
|
23
|
+
error ErrorStakingReaderUnauthorizedCaler();
|
23
24
|
|
25
|
+
address private _initializeOwner;
|
24
26
|
IRegistry private _registry;
|
25
27
|
IStaking private _staking;
|
26
28
|
StakingStore private _store;
|
27
29
|
|
28
|
-
constructor(IRegistry registry)
|
30
|
+
constructor(IRegistry registry) {
|
31
|
+
_initializeOwner = msg.sender;
|
29
32
|
_registry = registry;
|
30
33
|
}
|
31
34
|
|
@@ -34,8 +37,12 @@ contract StakingReader is
|
|
34
37
|
address stakingStoreAddress
|
35
38
|
)
|
36
39
|
external
|
37
|
-
initializer
|
40
|
+
initializer()
|
38
41
|
{
|
42
|
+
if (msg.sender != _initializeOwner) {
|
43
|
+
revert ErrorStakingReaderUnauthorizedCaler();
|
44
|
+
}
|
45
|
+
|
39
46
|
_staking = IStaking(stakingAddress);
|
40
47
|
_store = StakingStore(stakingStoreAddress);
|
41
48
|
}
|
@@ -4,21 +4,15 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
7
|
-
import {ChainNft} from "../registry/ChainNft.sol";
|
8
|
-
import {IPoolService} from "../pool/IPoolService.sol";
|
9
7
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
10
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
11
9
|
import {RegistryService} from "../registry/RegistryService.sol";
|
12
10
|
import {IStaking} from "./IStaking.sol";
|
13
11
|
import {IStakingService} from "./IStakingService.sol";
|
14
12
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
15
|
-
import {ObjectType, INSTANCE,
|
13
|
+
import {ObjectType, INSTANCE, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
|
16
14
|
import {Seconds} from "../type/Seconds.sol";
|
17
15
|
import {Service} from "../shared/Service.sol";
|
18
|
-
import {StakeManagerLib} from "./StakeManagerLib.sol";
|
19
|
-
import {StakingReader} from "./StakingReader.sol";
|
20
|
-
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
21
|
-
import {Timestamp} from "../type/Timestamp.sol";
|
22
16
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
23
17
|
import {UFixed} from "../type/UFixed.sol";
|
24
18
|
|
@@ -38,14 +32,6 @@ contract StakingService is
|
|
38
32
|
TokenHandler _tokenHandler;
|
39
33
|
}
|
40
34
|
|
41
|
-
modifier onlyNftOwner(NftId nftId) {
|
42
|
-
if(msg.sender != getRegistry().ownerOf(nftId)) {
|
43
|
-
revert ErrorStakingServiceNotNftOwner(nftId, getRegistry().ownerOf(nftId), msg.sender);
|
44
|
-
}
|
45
|
-
_;
|
46
|
-
}
|
47
|
-
|
48
|
-
|
49
35
|
function createInstanceTarget(
|
50
36
|
NftId targetNftId,
|
51
37
|
Seconds initialLockingPeriod,
|
@@ -331,7 +317,7 @@ contract StakingService is
|
|
331
317
|
address stakingAddress
|
332
318
|
) = abi.decode(data, (address, address, address));
|
333
319
|
|
334
|
-
|
320
|
+
_initializeService(registryAddress, authority, owner);
|
335
321
|
|
336
322
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
337
323
|
$._registryService = RegistryService(_getServiceAddress(REGISTRY()));
|
@@ -339,7 +325,7 @@ contract StakingService is
|
|
339
325
|
$._dip = $._staking.getToken();
|
340
326
|
$._tokenHandler = $._staking.getTokenHandler();
|
341
327
|
|
342
|
-
|
328
|
+
_registerInterface(type(IStakingService).interfaceId);
|
343
329
|
}
|
344
330
|
|
345
331
|
|
@@ -18,14 +18,14 @@ contract StakingServiceManager is
|
|
18
18
|
address registryAddress,
|
19
19
|
bytes32 salt
|
20
20
|
)
|
21
|
-
ProxyManager(registryAddress)
|
22
21
|
{
|
23
22
|
StakingService svc = new StakingService();
|
24
23
|
bytes memory data = abi.encode(
|
25
24
|
authority,
|
26
25
|
registryAddress,
|
27
26
|
IRegistry(registryAddress).getStakingAddress());
|
28
|
-
IVersionable versionable =
|
27
|
+
IVersionable versionable = initialize(
|
28
|
+
registryAddress,
|
29
29
|
address(svc),
|
30
30
|
data,
|
31
31
|
salt);
|
@@ -132,9 +132,9 @@ library TargetManagerLib {
|
|
132
132
|
public
|
133
133
|
pure
|
134
134
|
{
|
135
|
-
// check locking period is
|
136
|
-
if (lockingPeriod.
|
137
|
-
revert IStaking.
|
135
|
+
// check locking period is >= min locking period
|
136
|
+
if (lockingPeriod.lt(getMinimumLockingPeriod())) {
|
137
|
+
revert IStaking.ErrorStakingLockingPeriodTooShort(targetNftId, getMinimumLockingPeriod(), lockingPeriod);
|
138
138
|
}
|
139
139
|
|
140
140
|
// check locking period <= max locking period
|
@@ -190,6 +190,10 @@ library TargetManagerLib {
|
|
190
190
|
return SecondsLib.toSeconds(365 * 24 * 3600 / 2);
|
191
191
|
}
|
192
192
|
|
193
|
+
/// @dev the minimum locking period is 24 hours
|
194
|
+
function getMinimumLockingPeriod() public pure returns (Seconds minLockingPeriod) {
|
195
|
+
return SecondsLib.toSeconds(24 * 3600);
|
196
|
+
}
|
193
197
|
|
194
198
|
function getMaxRewardRate() public pure returns (UFixed maxRewardRate) {
|
195
199
|
return UFixedLib.toUFixed(33, -2);
|
@@ -11,7 +11,9 @@ using {
|
|
11
11
|
eqAmount as ==,
|
12
12
|
nqAmount as !=,
|
13
13
|
ltAmount as <,
|
14
|
+
ltAmount as <=,
|
14
15
|
gtAmount as >,
|
16
|
+
gteAmount as >=,
|
15
17
|
AmountLib.add,
|
16
18
|
AmountLib.eq,
|
17
19
|
AmountLib.eqz,
|
@@ -43,10 +45,18 @@ function ltAmount(Amount a, Amount b) pure returns (bool) {
|
|
43
45
|
return AmountLib.lt(a, b);
|
44
46
|
}
|
45
47
|
|
48
|
+
function lteAmount(Amount a, Amount b) pure returns (bool) {
|
49
|
+
return AmountLib.lte(a, b);
|
50
|
+
}
|
51
|
+
|
46
52
|
function gtAmount(Amount a, Amount b) pure returns (bool) {
|
47
53
|
return AmountLib.gt(a, b);
|
48
54
|
}
|
49
55
|
|
56
|
+
function gteAmount(Amount a, Amount b) pure returns (bool) {
|
57
|
+
return AmountLib.gte(a, b);
|
58
|
+
}
|
59
|
+
|
50
60
|
library AmountLib {
|
51
61
|
|
52
62
|
error ErrorAmountLibValueTooBig(uint256 amount);
|
@@ -84,6 +94,11 @@ library AmountLib {
|
|
84
94
|
return Amount.unwrap(a1) < Amount.unwrap(a2);
|
85
95
|
}
|
86
96
|
|
97
|
+
/// @dev return true if amount a1 is less or equal than a2
|
98
|
+
function lte(Amount a1, Amount a2) public pure returns (bool) {
|
99
|
+
return Amount.unwrap(a1) <= Amount.unwrap(a2);
|
100
|
+
}
|
101
|
+
|
87
102
|
/// @dev return true if amount a1 is greater than a2
|
88
103
|
function gt(Amount a1, Amount a2) public pure returns (bool) {
|
89
104
|
return Amount.unwrap(a1) > Amount.unwrap(a2);
|
@@ -12,6 +12,7 @@ import {NftId} from "./NftId.sol";
|
|
12
12
|
using {
|
13
13
|
eqClaimId as ==,
|
14
14
|
neClaimId as !=,
|
15
|
+
ClaimIdLib.eq,
|
15
16
|
ClaimIdLib.eqz,
|
16
17
|
ClaimIdLib.gtz,
|
17
18
|
ClaimIdLib.toInt,
|
@@ -21,7 +22,7 @@ using {
|
|
21
22
|
|
22
23
|
// pure free functions for operators
|
23
24
|
function eqClaimId(ClaimId a, ClaimId b) pure returns (bool isSame) {
|
24
|
-
return
|
25
|
+
return ClaimIdLib.eq(a, b);
|
25
26
|
}
|
26
27
|
|
27
28
|
function neClaimId(ClaimId a, ClaimId b) pure returns (bool isDifferent) {
|
@@ -68,6 +69,10 @@ library ClaimIdLib {
|
|
68
69
|
return ClaimId.unwrap(a) > 0;
|
69
70
|
}
|
70
71
|
|
72
|
+
function eq(ClaimId a, ClaimId b) public pure returns (bool) {
|
73
|
+
return ClaimId.unwrap(a) == ClaimId.unwrap(b);
|
74
|
+
}
|
75
|
+
|
71
76
|
/// @dev Returns true if the value is zero (== 0).
|
72
77
|
function eqz(ClaimId a) public pure returns (bool) {
|
73
78
|
return ClaimId.unwrap(a) == 0;
|
package/contracts/type/NftId.sol
CHANGED
@@ -9,6 +9,7 @@ using {
|
|
9
9
|
neObjectType as !=,
|
10
10
|
ObjectTypeLib.toInt,
|
11
11
|
ObjectTypeLib.eqz,
|
12
|
+
ObjectTypeLib.eq,
|
12
13
|
ObjectTypeLib.gtz
|
13
14
|
} for ObjectType global;
|
14
15
|
|
@@ -71,48 +72,52 @@ function POLICY() pure returns (ObjectType) {
|
|
71
72
|
return ObjectType.wrap(21);
|
72
73
|
}
|
73
74
|
|
74
|
-
function
|
75
|
+
function PREMIUM() pure returns (ObjectType) {
|
75
76
|
return ObjectType.wrap(22);
|
76
77
|
}
|
77
78
|
|
79
|
+
function CLAIM() pure returns (ObjectType) {
|
80
|
+
return ObjectType.wrap(23);
|
81
|
+
}
|
82
|
+
|
78
83
|
function PAYOUT() pure returns (ObjectType) {
|
79
|
-
return ObjectType.wrap(
|
84
|
+
return ObjectType.wrap(24);
|
80
85
|
}
|
81
86
|
|
82
87
|
function RISK() pure returns (ObjectType) {
|
83
|
-
return ObjectType.wrap(
|
88
|
+
return ObjectType.wrap(25);
|
84
89
|
}
|
85
90
|
|
86
91
|
function PRICE() pure returns (ObjectType) {
|
87
|
-
return ObjectType.wrap(
|
92
|
+
return ObjectType.wrap(26);
|
88
93
|
}
|
89
94
|
|
90
95
|
function REQUEST() pure returns (ObjectType) {
|
91
|
-
return ObjectType.wrap(
|
96
|
+
return ObjectType.wrap(27);
|
92
97
|
}
|
93
98
|
|
94
99
|
function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
|
95
|
-
return ObjectType.wrap(
|
100
|
+
return ObjectType.wrap(28);
|
96
101
|
}
|
97
102
|
|
98
103
|
function DISTRIBUTOR() pure returns (ObjectType) {
|
99
|
-
return ObjectType.wrap(
|
104
|
+
return ObjectType.wrap(29);
|
100
105
|
}
|
101
106
|
|
102
107
|
function REFERRAL() pure returns (ObjectType) {
|
103
|
-
return ObjectType.wrap(
|
108
|
+
return ObjectType.wrap(30);
|
104
109
|
}
|
105
110
|
|
106
111
|
function BUNDLE() pure returns (ObjectType) {
|
107
|
-
return ObjectType.wrap(
|
112
|
+
return ObjectType.wrap(31);
|
108
113
|
}
|
109
114
|
|
110
115
|
function TARGET() pure returns (ObjectType) {
|
111
|
-
return ObjectType.wrap(
|
116
|
+
return ObjectType.wrap(32);
|
112
117
|
}
|
113
118
|
|
114
119
|
function STAKE() pure returns (ObjectType) {
|
115
|
-
return ObjectType.wrap(
|
120
|
+
return ObjectType.wrap(33);
|
116
121
|
}
|
117
122
|
|
118
123
|
/// @dev Object type that includes any other object type.
|
@@ -1,8 +1,8 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
//
|
5
|
-
type PayoutId is
|
4
|
+
// uint40 allows for 65'535 claims with 16'777'216 payouts each per policy
|
5
|
+
type PayoutId is uint40;
|
6
6
|
|
7
7
|
import {ClaimId} from "./ClaimId.sol";
|
8
8
|
import {PAYOUT} from "./ObjectType.sol";
|
@@ -39,21 +39,21 @@ library PayoutIdLib {
|
|
39
39
|
}
|
40
40
|
|
41
41
|
/// @dev Converts an uint into a PayoutId.
|
42
|
-
function toPayoutId(ClaimId claimId,
|
43
|
-
return PayoutId.wrap((ClaimId.unwrap(claimId) <<
|
42
|
+
function toPayoutId(ClaimId claimId, uint24 payoutNo) public pure returns (PayoutId) {
|
43
|
+
return PayoutId.wrap((uint40(ClaimId.unwrap(claimId)) << 24) + payoutNo);
|
44
44
|
}
|
45
45
|
|
46
46
|
function toClaimId(PayoutId payoutId) public pure returns (ClaimId) {
|
47
|
-
return ClaimId.wrap(uint16(PayoutId.unwrap(payoutId) >>
|
47
|
+
return ClaimId.wrap(uint16(PayoutId.unwrap(payoutId) >> 24));
|
48
48
|
}
|
49
49
|
|
50
|
-
function toPayoutNo(PayoutId payoutId) public pure returns (
|
51
|
-
return
|
50
|
+
function toPayoutNo(PayoutId payoutId) public pure returns (uint24) {
|
51
|
+
return uint24(PayoutId.unwrap(payoutId) & 16777215);
|
52
52
|
}
|
53
53
|
|
54
54
|
/// @dev Converts the PayoutId to a uint.
|
55
|
-
function toInt(PayoutId a) public pure returns (
|
56
|
-
return
|
55
|
+
function toInt(PayoutId a) public pure returns (uint40) {
|
56
|
+
return PayoutId.unwrap(a);
|
57
57
|
}
|
58
58
|
|
59
59
|
/// @dev Returns true if the value is non-zero (> 0).
|
@@ -77,6 +77,6 @@ library PayoutIdLib {
|
|
77
77
|
bytes31(
|
78
78
|
bytes15(
|
79
79
|
uint120(
|
80
|
-
(NftId.unwrap(policyNftId) <<
|
80
|
+
(NftId.unwrap(policyNftId) << 40) + PayoutId.unwrap(payoutId)))));
|
81
81
|
}
|
82
82
|
}
|