@etherisc/gif-next 0.0.2-e83e4a5-207 → 0.0.2-e876b87-961
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 +32 -3
- 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/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
- 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 +206 -309
- 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 +134 -277
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +284 -223
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +116 -104
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +121 -92
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +149 -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 +1538 -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 +2072 -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 +1471 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +59 -37
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +34 -89
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +63 -130
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +167 -140
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -98
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +459 -136
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +82 -247
- 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 +330 -243
- 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 +4 -0
- package/artifacts/contracts/instance/base/{ObjectManager.sol/ObjectManager.json → ObjectSet.sol/ObjectSet.json} +6 -6
- 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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +164 -280
- 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 +96 -80
- 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 +106 -262
- 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 +152 -330
- 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 +498 -167
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +169 -89
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +258 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +131 -130
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +384 -179
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +142 -313
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +506 -334
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +111 -87
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +76 -168
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -92
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +155 -281
- 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 +303 -187
- 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 +34 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +176 -6
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +323 -118
- 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 +143 -97
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +444 -325
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +119 -103
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +202 -307
- 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 +155 -281
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +322 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +42 -146
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +549 -80
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +285 -145
- 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 +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
- 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 +65 -236
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +546 -248
- package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +206 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +136 -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 +55 -54
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +499 -19
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +85 -80
- 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 +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +98 -265
- 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 +4 -0
- package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
- 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 +407 -11
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +132 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +82 -55
- 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 +73 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +174 -291
- 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 +106 -91
- 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 +177 -131
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -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 +61 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- 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 +7 -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 +50 -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 +23 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +64 -59
- package/contracts/authorization/Authorization.sol +111 -40
- 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 +6 -16
- package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
- package/contracts/distribution/Distribution.sol +28 -26
- package/contracts/distribution/DistributionService.sol +128 -75
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +9 -5
- package/contracts/distribution/IDistributionService.sol +18 -2
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +73 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +415 -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/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +14 -34
- package/contracts/instance/IInstanceService.sol +5 -25
- package/contracts/instance/Instance.sol +32 -54
- package/contracts/instance/InstanceAdmin.sol +47 -34
- package/contracts/instance/InstanceAuthorizationV3.sol +24 -32
- package/contracts/instance/InstanceReader.sol +115 -25
- package/contracts/instance/InstanceService.sol +75 -105
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +12 -1
- package/contracts/instance/base/ObjectLifecycle.sol +9 -4
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +10 -11
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +24 -24
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +21 -22
- package/contracts/oracle/OracleService.sol +47 -34
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +21 -31
- package/contracts/pool/BasicPoolAuthorization.sol +11 -3
- package/contracts/pool/BundleService.sol +267 -70
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +42 -5
- package/contracts/pool/IPoolComponent.sol +24 -8
- package/contracts/pool/IPoolService.sol +56 -39
- package/contracts/pool/Pool.sol +73 -49
- package/contracts/pool/PoolService.sol +256 -164
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +70 -65
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +9 -38
- package/contracts/product/BasicProductAuthorization.sol +2 -0
- package/contracts/product/ClaimService.sol +316 -146
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +31 -7
- package/contracts/product/IPolicyService.sol +34 -32
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +24 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +419 -203
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +54 -54
- package/contracts/product/PricingServiceManager.sol +5 -8
- package/contracts/product/Product.sol +134 -71
- package/contracts/product/{ProductService.sol → RiskService.sol} +13 -41
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +68 -38
- package/contracts/registry/IRegistry.sol +69 -19
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +354 -215
- package/contracts/registry/RegistryAdmin.sol +155 -72
- package/contracts/registry/RegistryService.sol +39 -64
- package/contracts/registry/RegistryServiceManager.sol +4 -4
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +501 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +16 -22
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +52 -62
- package/contracts/shared/ComponentService.sol +299 -179
- package/contracts/shared/ComponentServiceHelperLib.sol +118 -0
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +23 -14
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +10 -6
- package/contracts/shared/IComponentService.sol +39 -20
- package/contracts/shared/IInstanceLinkedComponent.sol +8 -17
- 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/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +85 -23
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +29 -9
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +19 -9
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +23 -22
- package/contracts/shared/TokenHandler.sol +144 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +3 -3
- package/contracts/staking/IStakingService.sol +12 -8
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +29 -45
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +23 -20
- package/contracts/staking/StakingService.sol +25 -29
- package/contracts/staking/StakingServiceManager.sol +4 -4
- package/contracts/staking/StakingStore.sol +12 -22
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/ObjectType.sol +19 -18
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +33 -10
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +4 -3
- 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/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -487
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -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,
|
@@ -72,6 +58,7 @@ contract StakingService is
|
|
72
58
|
virtual
|
73
59
|
restricted()
|
74
60
|
{
|
61
|
+
_checkNftType(instanceNftId, INSTANCE());
|
75
62
|
_getStakingServiceStorage()._staking.setLockingPeriod(
|
76
63
|
instanceNftId,
|
77
64
|
lockingPeriod);
|
@@ -83,6 +70,7 @@ contract StakingService is
|
|
83
70
|
virtual
|
84
71
|
restricted()
|
85
72
|
{
|
73
|
+
_checkNftType(instanceNftId, INSTANCE());
|
86
74
|
_getStakingServiceStorage()._staking.setRewardRate(
|
87
75
|
instanceNftId,
|
88
76
|
rewardRate);
|
@@ -95,6 +83,7 @@ contract StakingService is
|
|
95
83
|
restricted()
|
96
84
|
returns (Amount newBalance)
|
97
85
|
{
|
86
|
+
_checkNftType(instanceNftId, INSTANCE());
|
98
87
|
return _refillRewardReserves(instanceNftId, rewardProvider, dipAmount);
|
99
88
|
}
|
100
89
|
|
@@ -116,17 +105,17 @@ contract StakingService is
|
|
116
105
|
restricted()
|
117
106
|
returns (Amount newBalance)
|
118
107
|
{
|
108
|
+
_checkNftType(instanceNftId, INSTANCE());
|
119
109
|
// update reward reserve book keeping
|
120
110
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
121
111
|
newBalance = $._staking.withdrawRewardReserves(instanceNftId, dipAmount);
|
122
112
|
|
123
113
|
// transfer withdrawal amount to target owner
|
124
114
|
address instanceOwner = getRegistry().ownerOf(instanceNftId);
|
115
|
+
emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
|
125
116
|
$._staking.transferDipAmount(
|
126
117
|
instanceOwner,
|
127
118
|
dipAmount);
|
128
|
-
|
129
|
-
emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
|
130
119
|
}
|
131
120
|
|
132
121
|
|
@@ -169,12 +158,12 @@ contract StakingService is
|
|
169
158
|
targetNftId,
|
170
159
|
dipAmount);
|
171
160
|
|
161
|
+
emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
|
162
|
+
|
172
163
|
// collect staked dip by staking
|
173
164
|
$._staking.collectDipAmount(
|
174
165
|
stakeOwner,
|
175
166
|
dipAmount);
|
176
|
-
|
177
|
-
emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
|
178
167
|
}
|
179
168
|
|
180
169
|
|
@@ -187,6 +176,8 @@ contract StakingService is
|
|
187
176
|
restricted()
|
188
177
|
onlyNftOwner(stakeNftId)
|
189
178
|
{
|
179
|
+
_checkNftType(stakeNftId, STAKE());
|
180
|
+
|
190
181
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
191
182
|
address stakeOwner = msg.sender;
|
192
183
|
|
@@ -197,12 +188,11 @@ contract StakingService is
|
|
197
188
|
|
198
189
|
// collect staked dip by staking
|
199
190
|
if (dipAmount.gtz()) {
|
191
|
+
emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
|
200
192
|
$._staking.collectDipAmount(
|
201
193
|
stakeOwner,
|
202
194
|
dipAmount);
|
203
195
|
}
|
204
|
-
|
205
|
-
emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
|
206
196
|
}
|
207
197
|
|
208
198
|
|
@@ -218,6 +208,8 @@ contract StakingService is
|
|
218
208
|
NftId newStakeNftId
|
219
209
|
)
|
220
210
|
{
|
211
|
+
_checkNftType(stakeNftId, STAKE());
|
212
|
+
|
221
213
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
222
214
|
// TODO implement
|
223
215
|
}
|
@@ -230,6 +222,8 @@ contract StakingService is
|
|
230
222
|
virtual
|
231
223
|
restricted()
|
232
224
|
{
|
225
|
+
_checkNftType(stakeNftId, STAKE());
|
226
|
+
|
233
227
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
234
228
|
$._staking.updateRewards(stakeNftId);
|
235
229
|
|
@@ -243,15 +237,16 @@ contract StakingService is
|
|
243
237
|
restricted()
|
244
238
|
onlyNftOwner(stakeNftId)
|
245
239
|
{
|
240
|
+
_checkNftType(stakeNftId, STAKE());
|
241
|
+
|
246
242
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
247
243
|
address stakeOwner = msg.sender;
|
248
244
|
|
249
245
|
Amount rewardsClaimedAmount = $._staking.claimRewards(stakeNftId);
|
246
|
+
emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
|
250
247
|
$._staking.transferDipAmount(
|
251
248
|
stakeOwner,
|
252
249
|
rewardsClaimedAmount);
|
253
|
-
|
254
|
-
emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
|
255
250
|
}
|
256
251
|
|
257
252
|
|
@@ -261,6 +256,8 @@ contract StakingService is
|
|
261
256
|
restricted()
|
262
257
|
onlyNftOwner(stakeNftId)
|
263
258
|
{
|
259
|
+
_checkNftType(stakeNftId, STAKE());
|
260
|
+
|
264
261
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
265
262
|
address stakeOwner = msg.sender;
|
266
263
|
|
@@ -270,11 +267,10 @@ contract StakingService is
|
|
270
267
|
) = $._staking.unstake(stakeNftId);
|
271
268
|
|
272
269
|
Amount totalAmount = unstakedAmount + rewardsClaimedAmount;
|
270
|
+
emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
|
273
271
|
$._staking.transferDipAmount(
|
274
272
|
stakeOwner,
|
275
273
|
totalAmount);
|
276
|
-
|
277
|
-
emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
|
278
274
|
}
|
279
275
|
|
280
276
|
|
@@ -335,7 +331,7 @@ contract StakingService is
|
|
335
331
|
address stakingAddress
|
336
332
|
) = abi.decode(data, (address, address, address));
|
337
333
|
|
338
|
-
|
334
|
+
_initializeService(registryAddress, authority, owner);
|
339
335
|
|
340
336
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
341
337
|
$._registryService = RegistryService(_getServiceAddress(REGISTRY()));
|
@@ -343,7 +339,7 @@ contract StakingService is
|
|
343
339
|
$._dip = $._staking.getToken();
|
344
340
|
$._tokenHandler = $._staking.getTokenHandler();
|
345
341
|
|
346
|
-
|
342
|
+
_registerInterface(type(IStakingService).interfaceId);
|
347
343
|
}
|
348
344
|
|
349
345
|
|
@@ -389,12 +385,12 @@ contract StakingService is
|
|
389
385
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
390
386
|
newBalance = $._staking.refillRewardReserves(targetNftId, dipAmount);
|
391
387
|
|
388
|
+
emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
|
389
|
+
|
392
390
|
// collect reward dip from provider
|
393
391
|
$._staking.collectDipAmount(
|
394
392
|
rewardProvider,
|
395
393
|
dipAmount);
|
396
|
-
|
397
|
-
emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
|
398
394
|
}
|
399
395
|
|
400
396
|
|
@@ -2,8 +2,8 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IRegistry} from "../registry/IRegistry.sol";
|
5
|
-
import {IVersionable} from "../
|
6
|
-
import {ProxyManager} from "../
|
5
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
6
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
7
7
|
import {StakingService} from "./StakingService.sol";
|
8
8
|
|
9
9
|
contract StakingServiceManager is
|
@@ -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);
|
@@ -3,32 +3,21 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
5
5
|
|
6
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
|
-
import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
|
8
|
-
import {ChainNft} from "../registry/ChainNft.sol";
|
9
|
-
import {Component} from "../shared/Component.sol";
|
10
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
11
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
12
7
|
import {IStaking} from "./IStaking.sol";
|
13
|
-
|
14
|
-
import {
|
8
|
+
|
9
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
10
|
+
import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
|
15
11
|
import {KeyValueStore} from "../shared/KeyValueStore.sol";
|
16
12
|
import {KEEP_STATE} from "../type/StateId.sol";
|
17
|
-
import {LibNftIdSet} from "../type/NftIdSet.sol";
|
18
13
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
19
|
-
import {
|
20
|
-
import {
|
21
|
-
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
14
|
+
import {NftIdSet} from "../shared/NftIdSet.sol";
|
15
|
+
import {PROTOCOL, STAKE, TARGET} from "../type/ObjectType.sol";
|
22
16
|
import {StakingReader} from "./StakingReader.sol";
|
23
17
|
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
24
18
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
25
|
-
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
26
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
27
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
28
|
-
import {Versionable} from "../shared/Versionable.sol";
|
29
|
-
|
30
|
-
import {RegistryAdmin} from "../registry/RegistryAdmin.sol";
|
31
19
|
import {StakingLifecycle} from "./StakingLifecycle.sol";
|
20
|
+
import {UFixed} from "../type/UFixed.sol";
|
32
21
|
|
33
22
|
|
34
23
|
contract StakingStore is
|
@@ -63,7 +52,7 @@ contract StakingStore is
|
|
63
52
|
error ErrorStakingStoreTvlBalanceNotInitialized(NftId nftId);
|
64
53
|
|
65
54
|
IRegistry private _registry;
|
66
|
-
|
55
|
+
NftIdSet private _targetNftIdSet;
|
67
56
|
StakingReader private _reader;
|
68
57
|
|
69
58
|
// staking rate
|
@@ -93,7 +82,7 @@ contract StakingStore is
|
|
93
82
|
// set internal variables
|
94
83
|
_registry = registry; //TODO if keeps registry -> RegistryLinked and checks registry address
|
95
84
|
_reader = reader;
|
96
|
-
|
85
|
+
_targetNftIdSet = new NftIdSet();
|
97
86
|
|
98
87
|
// register protocol target
|
99
88
|
_createTarget(
|
@@ -428,8 +417,9 @@ contract StakingStore is
|
|
428
417
|
return _reader;
|
429
418
|
}
|
430
419
|
|
431
|
-
|
432
|
-
|
420
|
+
// TODO rename
|
421
|
+
function getTargetNftIdSet() external view returns (NftIdSet targetNftIdSet){
|
422
|
+
return _targetNftIdSet;
|
433
423
|
}
|
434
424
|
|
435
425
|
function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) { return _stakingRate[chainId][token]; }
|
@@ -493,7 +483,7 @@ contract StakingStore is
|
|
493
483
|
_tvlLastUpdatedIn[targetNftId]= BlocknumberLib.currentBlocknumber();
|
494
484
|
_createTargetBalance(targetNftId);
|
495
485
|
|
496
|
-
|
486
|
+
_targetNftIdSet.add(targetNftId);
|
497
487
|
}
|
498
488
|
|
499
489
|
function _updateReserves(
|
@@ -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,14 +11,18 @@ using {
|
|
11
11
|
eqAmount as ==,
|
12
12
|
nqAmount as !=,
|
13
13
|
ltAmount as <,
|
14
|
+
ltAmount as <=,
|
14
15
|
gtAmount as >,
|
16
|
+
gteAmount as >=,
|
17
|
+
AmountLib.add,
|
15
18
|
AmountLib.eq,
|
16
19
|
AmountLib.eqz,
|
17
20
|
AmountLib.gtz,
|
21
|
+
AmountLib.gt,
|
22
|
+
AmountLib.gte,
|
23
|
+
AmountLib.multiplyWith,
|
18
24
|
AmountLib.toInt,
|
19
|
-
AmountLib.
|
20
|
-
AmountLib.toUFixed,
|
21
|
-
AmountLib.multiplyWith
|
25
|
+
AmountLib.toUFixed
|
22
26
|
} for Amount global;
|
23
27
|
|
24
28
|
function addAmount(Amount a, Amount b) pure returns (Amount) {
|
@@ -41,10 +45,18 @@ function ltAmount(Amount a, Amount b) pure returns (bool) {
|
|
41
45
|
return AmountLib.lt(a, b);
|
42
46
|
}
|
43
47
|
|
48
|
+
function lteAmount(Amount a, Amount b) pure returns (bool) {
|
49
|
+
return AmountLib.lte(a, b);
|
50
|
+
}
|
51
|
+
|
44
52
|
function gtAmount(Amount a, Amount b) pure returns (bool) {
|
45
53
|
return AmountLib.gt(a, b);
|
46
54
|
}
|
47
55
|
|
56
|
+
function gteAmount(Amount a, Amount b) pure returns (bool) {
|
57
|
+
return AmountLib.gte(a, b);
|
58
|
+
}
|
59
|
+
|
48
60
|
library AmountLib {
|
49
61
|
|
50
62
|
error ErrorAmountLibValueTooBig(uint256 amount);
|
@@ -77,16 +89,26 @@ library AmountLib {
|
|
77
89
|
return Amount.unwrap(amount1) == Amount.unwrap(amount2);
|
78
90
|
}
|
79
91
|
|
80
|
-
/// @dev return true if amount a1 is
|
92
|
+
/// @dev return true if amount a1 is less than a2
|
81
93
|
function lt(Amount a1, Amount a2) public pure returns (bool) {
|
82
94
|
return Amount.unwrap(a1) < Amount.unwrap(a2);
|
83
95
|
}
|
84
96
|
|
85
|
-
/// @dev return true if amount a1 is
|
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
|
+
|
102
|
+
/// @dev return true if amount a1 is greater than a2
|
86
103
|
function gt(Amount a1, Amount a2) public pure returns (bool) {
|
87
104
|
return Amount.unwrap(a1) > Amount.unwrap(a2);
|
88
105
|
}
|
89
106
|
|
107
|
+
/// @dev return true if amount a1 is greater or equal than a2
|
108
|
+
function gte(Amount a1, Amount a2) public pure returns (bool) {
|
109
|
+
return Amount.unwrap(a1) >= Amount.unwrap(a2);
|
110
|
+
}
|
111
|
+
|
90
112
|
/// @dev return minimum of a1 and a2.
|
91
113
|
function min(Amount a1, Amount a2) public pure returns (Amount) {
|
92
114
|
if (Amount.unwrap(a1) < Amount.unwrap(a2)) {
|
@@ -11,8 +11,14 @@ using {
|
|
11
11
|
eqBlocknumber as ==,
|
12
12
|
neBlocknumber as !=,
|
13
13
|
BlocknumberLib.toInt,
|
14
|
+
BlocknumberLib.eq,
|
15
|
+
BlocknumberLib.ne,
|
14
16
|
BlocknumberLib.eqz,
|
15
|
-
BlocknumberLib.gtz
|
17
|
+
BlocknumberLib.gtz,
|
18
|
+
BlocknumberLib.gt,
|
19
|
+
BlocknumberLib.gte,
|
20
|
+
BlocknumberLib.lt,
|
21
|
+
BlocknumberLib.lte
|
16
22
|
} for Blocknumber global;
|
17
23
|
|
18
24
|
/// @dev return true if Blocknumber a is greater than Blocknumber b
|
@@ -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
|
|
@@ -27,20 +28,16 @@ function STAKING() pure returns (ObjectType) {
|
|
27
28
|
return ObjectType.wrap(3);
|
28
29
|
}
|
29
30
|
|
30
|
-
function TOKEN() pure returns (ObjectType) {
|
31
|
-
return ObjectType.wrap(6);
|
32
|
-
}
|
33
|
-
|
34
31
|
function RELEASE() pure returns (ObjectType) {
|
35
|
-
return ObjectType.wrap(
|
32
|
+
return ObjectType.wrap(6);
|
36
33
|
}
|
37
34
|
|
38
35
|
function ROLE() pure returns (ObjectType) {
|
39
|
-
return ObjectType.wrap(
|
36
|
+
return ObjectType.wrap(7);
|
40
37
|
}
|
41
38
|
|
42
39
|
function SERVICE() pure returns (ObjectType) {
|
43
|
-
return ObjectType.wrap(
|
40
|
+
return ObjectType.wrap(8);
|
44
41
|
}
|
45
42
|
|
46
43
|
function INSTANCE() pure returns (ObjectType) {
|
@@ -75,48 +72,52 @@ function POLICY() pure returns (ObjectType) {
|
|
75
72
|
return ObjectType.wrap(21);
|
76
73
|
}
|
77
74
|
|
78
|
-
function
|
75
|
+
function PREMIUM() pure returns (ObjectType) {
|
79
76
|
return ObjectType.wrap(22);
|
80
77
|
}
|
81
78
|
|
79
|
+
function CLAIM() pure returns (ObjectType) {
|
80
|
+
return ObjectType.wrap(23);
|
81
|
+
}
|
82
|
+
|
82
83
|
function PAYOUT() pure returns (ObjectType) {
|
83
|
-
return ObjectType.wrap(
|
84
|
+
return ObjectType.wrap(24);
|
84
85
|
}
|
85
86
|
|
86
87
|
function RISK() pure returns (ObjectType) {
|
87
|
-
return ObjectType.wrap(
|
88
|
+
return ObjectType.wrap(25);
|
88
89
|
}
|
89
90
|
|
90
91
|
function PRICE() pure returns (ObjectType) {
|
91
|
-
return ObjectType.wrap(
|
92
|
+
return ObjectType.wrap(26);
|
92
93
|
}
|
93
94
|
|
94
95
|
function REQUEST() pure returns (ObjectType) {
|
95
|
-
return ObjectType.wrap(
|
96
|
+
return ObjectType.wrap(27);
|
96
97
|
}
|
97
98
|
|
98
99
|
function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
|
99
|
-
return ObjectType.wrap(
|
100
|
+
return ObjectType.wrap(28);
|
100
101
|
}
|
101
102
|
|
102
103
|
function DISTRIBUTOR() pure returns (ObjectType) {
|
103
|
-
return ObjectType.wrap(
|
104
|
+
return ObjectType.wrap(29);
|
104
105
|
}
|
105
106
|
|
106
107
|
function REFERRAL() pure returns (ObjectType) {
|
107
|
-
return ObjectType.wrap(
|
108
|
+
return ObjectType.wrap(30);
|
108
109
|
}
|
109
110
|
|
110
111
|
function BUNDLE() pure returns (ObjectType) {
|
111
|
-
return ObjectType.wrap(
|
112
|
+
return ObjectType.wrap(31);
|
112
113
|
}
|
113
114
|
|
114
115
|
function TARGET() pure returns (ObjectType) {
|
115
|
-
return ObjectType.wrap(
|
116
|
+
return ObjectType.wrap(32);
|
116
117
|
}
|
117
118
|
|
118
119
|
function STAKE() pure returns (ObjectType) {
|
119
|
-
return ObjectType.wrap(
|
120
|
+
return ObjectType.wrap(33);
|
120
121
|
}
|
121
122
|
|
122
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
|
}
|
@@ -10,7 +10,9 @@ type RiskId is bytes8;
|
|
10
10
|
using {
|
11
11
|
eqRiskId as ==,
|
12
12
|
neRiskId as !=,
|
13
|
-
RiskIdLib.toKey32
|
13
|
+
RiskIdLib.toKey32,
|
14
|
+
RiskIdLib.eq,
|
15
|
+
RiskIdLib.eqz
|
14
16
|
} for RiskId global;
|
15
17
|
|
16
18
|
// general pure free functions
|
@@ -26,6 +28,10 @@ function neRiskId(RiskId a, RiskId b) pure returns (bool isDifferent) {
|
|
26
28
|
}
|
27
29
|
|
28
30
|
library RiskIdLib {
|
31
|
+
function zero() public pure returns (RiskId) {
|
32
|
+
return RiskId.wrap(bytes8(0));
|
33
|
+
}
|
34
|
+
|
29
35
|
// @dev Converts a role string into a role id.
|
30
36
|
function toRiskId(string memory risk) public pure returns (RiskId) {
|
31
37
|
return RiskId.wrap(bytes8(keccak256(abi.encode(risk))));
|
@@ -40,4 +46,12 @@ library RiskIdLib {
|
|
40
46
|
function toKeyId(RiskId id) public pure returns (KeyId keyId) {
|
41
47
|
return KeyId.wrap(bytes31(RiskId.unwrap(id)));
|
42
48
|
}
|
49
|
+
|
50
|
+
function eq(RiskId a, RiskId b) public pure returns (bool isSame) {
|
51
|
+
return eqRiskId(a, b);
|
52
|
+
}
|
53
|
+
|
54
|
+
function eqz(RiskId a) public pure returns (bool isZero) {
|
55
|
+
return eqRiskId(a, zero());
|
56
|
+
}
|
43
57
|
}
|
@@ -54,18 +54,6 @@ function GIF_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2)
|
|
54
54
|
/// @dev role for registering remote staking targets and reporting remote total value locked amounts.
|
55
55
|
function GIF_REMOTE_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(3); }
|
56
56
|
|
57
|
-
/// @dev instance specific role to register/own a product component
|
58
|
-
function PRODUCT_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(11); }
|
59
|
-
|
60
|
-
/// @dev instance specific role to register/own an oracle component
|
61
|
-
function ORACLE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(12); }
|
62
|
-
|
63
|
-
/// @dev instance specific role to register/own a distribution component
|
64
|
-
function DISTRIBUTION_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(13); }
|
65
|
-
|
66
|
-
/// @dev instance specific role to register/own a pool component
|
67
|
-
function POOL_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(14); }
|
68
|
-
|
69
57
|
//--- GIF core contract roles (range: 200 - 9'900) --------------------------//
|
70
58
|
// created and assigned during initial deployment for registry and staking
|
71
59
|
// granting for instances and components in instance service
|