@etherisc/gif-next 0.0.2-e9c5694-914 → 0.0.2-ea09fbf-195
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 +27 -6
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +103 -55
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- 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 +37 -5
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +106 -186
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -89
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +154 -108
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +75 -53
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -58
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +50 -3
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +101 -164
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +49 -17
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +258 -290
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +17 -17
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +137 -129
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +90 -126
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +225 -162
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +630 -317
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +94 -47
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +77 -20
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +131 -56
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +239 -92
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +40 -27
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +478 -197
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +104 -74
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -27
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +410 -370
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- 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 +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelper.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelper.sol/ObjectSetHelperLib.json +168 -0
- 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 +74 -154
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- 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 +44 -58
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +58 -90
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +112 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +69 -27
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +57 -104
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +49 -17
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +128 -226
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +60 -74
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +46 -60
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -97
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +104 -78
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -128
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +175 -174
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +64 -38
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +105 -63
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +163 -175
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +251 -144
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +79 -57
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +143 -3
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +65 -22
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +150 -144
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +158 -140
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +73 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +99 -76
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -38
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +163 -175
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +88 -73
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +54 -24
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +31 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +69 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +188 -213
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +42 -20
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +310 -52
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +57 -75
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +250 -421
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +71 -61
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +44 -44
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +134 -248
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +44 -58
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -89
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -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 +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +62 -80
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +27 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +3 -3
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +134 -173
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +58 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +73 -50
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +46 -24
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -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 +3 -3
- 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 +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
- 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/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +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 +62 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- 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/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/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
- 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 +18 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +136 -73
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/IAccessAdmin.sol +6 -3
- package/contracts/distribution/BasicDistribution.sol +6 -6
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +32 -30
- package/contracts/distribution/DistributionService.sol +34 -32
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/FirePool.sol +22 -5
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -0
- package/contracts/examples/fire/FireProduct.sol +31 -8
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +33 -2
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +40 -21
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +8 -8
- package/contracts/instance/IInstanceService.sol +9 -9
- package/contracts/instance/Instance.sol +20 -17
- package/contracts/instance/InstanceAdmin.sol +96 -47
- package/contracts/instance/InstanceAuthorizationV3.sol +45 -14
- package/contracts/instance/InstanceReader.sol +108 -7
- package/contracts/instance/InstanceService.sol +73 -82
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelper.sol +30 -0
- package/contracts/instance/module/IComponents.sol +4 -4
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +92 -73
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +24 -3
- package/contracts/pool/BasicPoolAuthorization.sol +12 -1
- package/contracts/pool/BundleService.sol +26 -94
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +2 -24
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +12 -26
- package/contracts/pool/Pool.sol +112 -102
- package/contracts/pool/PoolService.sol +171 -100
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +15 -15
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +9 -11
- package/contracts/product/BasicProductAuthorization.sol +1 -2
- package/contracts/product/ClaimService.sol +147 -51
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +13 -0
- package/contracts/product/IPolicyService.sol +17 -7
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/PolicyService.sol +244 -199
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +23 -19
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +47 -39
- package/contracts/product/RiskService.sol +78 -23
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +8 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +12 -3
- package/contracts/registry/RegistryAdmin.sol +121 -225
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +129 -119
- package/contracts/registry/ServiceAuthorizationV3.sol +88 -40
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +59 -98
- package/contracts/shared/ComponentService.sol +206 -251
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +15 -13
- package/contracts/shared/ContractLib.sol +223 -9
- package/contracts/shared/IComponent.sol +4 -17
- package/contracts/shared/IComponentService.sol +20 -24
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +2 -18
- package/contracts/shared/NftOwnable.sol +4 -4
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +44 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +316 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/Staking.sol +62 -33
- package/contracts/staking/StakingService.sol +41 -9
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +32 -18
- package/contracts/type/RiskId.sol +23 -6
- package/contracts/type/RoleId.sol +5 -2
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +9 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +3 -3
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
@@ -5,8 +5,16 @@ import {TokenHandler} from "./TokenHandler.sol";
|
|
5
5
|
|
6
6
|
library TokenHandlerDeployerLib {
|
7
7
|
|
8
|
-
function deployTokenHandler(
|
9
|
-
|
8
|
+
function deployTokenHandler(
|
9
|
+
address registry,
|
10
|
+
address component,
|
11
|
+
address token,
|
12
|
+
address authority
|
13
|
+
)
|
14
|
+
public
|
15
|
+
returns (TokenHandler)
|
16
|
+
{
|
17
|
+
return new TokenHandler(registry, component, token, authority);
|
10
18
|
}
|
11
19
|
|
12
20
|
}
|
@@ -30,6 +30,9 @@ interface IStaking is
|
|
30
30
|
error ErrorStakingNotStakingOwner();
|
31
31
|
error ErrorStakingNotNftOwner(NftId nftId);
|
32
32
|
|
33
|
+
// initializeTokenHandler
|
34
|
+
error ErrorStakingNotRegistry(address registry);
|
35
|
+
|
33
36
|
// staking rate
|
34
37
|
error ErrorStakingTokenNotRegistered(uint256 chainId, address token);
|
35
38
|
|
@@ -64,6 +67,8 @@ interface IStaking is
|
|
64
67
|
UFixed rewardRate;
|
65
68
|
}
|
66
69
|
|
70
|
+
function initializeTokenHandler() external;
|
71
|
+
|
67
72
|
// staking rate management
|
68
73
|
|
69
74
|
/// @dev sets the rate that converts 1 token of total value locked into the
|
@@ -155,11 +160,11 @@ interface IStaking is
|
|
155
160
|
|
156
161
|
//--- helper functions --------------------------------------------------//
|
157
162
|
|
158
|
-
/// @dev transfers the specified amount of dips from the from address to the staking wallet.
|
159
|
-
function collectDipAmount(address from, Amount dipAmount) external;
|
163
|
+
// /// @dev transfers the specified amount of dips from the from address to the staking wallet.
|
164
|
+
// function collectDipAmount(address from, Amount dipAmount) external;
|
160
165
|
|
161
|
-
/// @dev transfers the specified amount of dips from the staking wallet to the to addess.
|
162
|
-
function transferDipAmount(address to, Amount dipAmount) external;
|
166
|
+
// /// @dev transfers the specified amount of dips from the staking wallet to the to addess.
|
167
|
+
// function transferDipAmount(address to, Amount dipAmount) external;
|
163
168
|
|
164
169
|
//--- view and pure functions -------------------------------------------//
|
165
170
|
|
@@ -1,17 +1,22 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
4
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
5
7
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
8
|
+
import {IRelease} from "../registry/IRelease.sol";
|
6
9
|
import {IStaking} from "./IStaking.sol";
|
7
10
|
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
8
11
|
|
9
12
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
10
13
|
import {Component} from "../shared/Component.sol";
|
11
14
|
import {IComponent} from "../shared/IComponent.sol";
|
15
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
12
16
|
import {NftId} from "../type/NftId.sol";
|
13
|
-
import {ObjectType, STAKING} from "../type/ObjectType.sol";
|
17
|
+
import {ObjectType, COMPONENT, STAKING} from "../type/ObjectType.sol";
|
14
18
|
import {Seconds} from "../type/Seconds.sol";
|
19
|
+
import {Registerable} from "../shared/Registerable.sol";
|
15
20
|
import {StakeManagerLib} from "./StakeManagerLib.sol";
|
16
21
|
import {StakingReader} from "./StakingReader.sol";
|
17
22
|
import {StakingStore} from "./StakingStore.sol";
|
@@ -21,7 +26,7 @@ import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
21
26
|
import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
|
22
27
|
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
23
28
|
import {UFixed} from "../type/UFixed.sol";
|
24
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
29
|
+
import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
|
25
30
|
import {Versionable} from "../upgradeability/Versionable.sol";
|
26
31
|
|
27
32
|
contract Staking is
|
@@ -35,7 +40,6 @@ contract Staking is
|
|
35
40
|
bytes32 public constant STAKING_LOCATION_V1 = 0xafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f00;
|
36
41
|
|
37
42
|
struct StakingStorage {
|
38
|
-
IRegistryService _registryService;
|
39
43
|
TokenRegistry _tokenRegistry;
|
40
44
|
TokenHandler _tokenHandler;
|
41
45
|
StakingStore _store;
|
@@ -59,6 +63,31 @@ contract Staking is
|
|
59
63
|
_;
|
60
64
|
}
|
61
65
|
|
66
|
+
function initializeTokenHandler()
|
67
|
+
external
|
68
|
+
{
|
69
|
+
if (msg.sender != address(getRegistry())) {
|
70
|
+
revert ErrorStakingNotRegistry(msg.sender);
|
71
|
+
}
|
72
|
+
|
73
|
+
StakingStorage storage $ = _getStakingStorage();
|
74
|
+
$._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
|
75
|
+
address(getRegistry()),
|
76
|
+
address(this),
|
77
|
+
address(getToken()),
|
78
|
+
getRegistry().getAuthority());
|
79
|
+
}
|
80
|
+
|
81
|
+
|
82
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount)
|
83
|
+
public
|
84
|
+
restricted()
|
85
|
+
onlyOwner()
|
86
|
+
{
|
87
|
+
_approveTokenHandler(token, amount);
|
88
|
+
}
|
89
|
+
|
90
|
+
|
62
91
|
// set/update staking reader
|
63
92
|
function setStakingReader(StakingReader stakingReader)
|
64
93
|
external
|
@@ -371,25 +400,6 @@ contract Staking is
|
|
371
400
|
}
|
372
401
|
|
373
402
|
|
374
|
-
|
375
|
-
//--- other functions ---------------------------------------------------//
|
376
|
-
|
377
|
-
function collectDipAmount(address from, Amount dipAmount)
|
378
|
-
external
|
379
|
-
restricted() // only staking service
|
380
|
-
{
|
381
|
-
getTokenHandler().collectTokens(from, getWallet(), dipAmount);
|
382
|
-
}
|
383
|
-
|
384
|
-
|
385
|
-
function transferDipAmount(address to, Amount dipAmount)
|
386
|
-
external
|
387
|
-
restricted() // only staking service
|
388
|
-
{
|
389
|
-
getTokenHandler().distributeTokens(getWallet(), to, dipAmount);
|
390
|
-
}
|
391
|
-
|
392
|
-
|
393
403
|
//--- view functions ----------------------------------------------------//
|
394
404
|
|
395
405
|
function getStakingReader() public view returns (StakingReader reader) {
|
@@ -408,14 +418,24 @@ contract Staking is
|
|
408
418
|
return _getStakingStorage()._tokenHandler;
|
409
419
|
}
|
410
420
|
|
411
|
-
// from
|
421
|
+
// from IRegisterable
|
422
|
+
function getRelease()
|
423
|
+
public
|
424
|
+
pure
|
425
|
+
virtual override (IRelease, Registerable)
|
426
|
+
returns(VersionPart)
|
427
|
+
{
|
428
|
+
return VersionPartLib.toVersionPart(3);
|
429
|
+
}
|
430
|
+
|
431
|
+
// from IVersionable
|
412
432
|
function getVersion()
|
413
433
|
public
|
414
434
|
pure
|
415
|
-
virtual override (IVersionable, Versionable)
|
435
|
+
virtual override (Component, IVersionable, Versionable)
|
416
436
|
returns(Version)
|
417
437
|
{
|
418
|
-
return VersionLib.toVersion(
|
438
|
+
return VersionLib.toVersion(3,0,0);
|
419
439
|
}
|
420
440
|
|
421
441
|
//--- internal functions ------------------------------------------------//
|
@@ -444,6 +464,16 @@ contract Staking is
|
|
444
464
|
}
|
445
465
|
|
446
466
|
|
467
|
+
function _approveTokenHandler(IERC20Metadata token, Amount amount)
|
468
|
+
internal
|
469
|
+
virtual override
|
470
|
+
{
|
471
|
+
IComponentService(_getServiceAddress(COMPONENT())).approveStakingTokenHandler(
|
472
|
+
token,
|
473
|
+
amount);
|
474
|
+
}
|
475
|
+
|
476
|
+
|
447
477
|
function _initialize(
|
448
478
|
address owner,
|
449
479
|
bytes memory data
|
@@ -465,6 +495,13 @@ contract Staking is
|
|
465
495
|
TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
466
496
|
address dipTokenAddress = tokenRegistry.getDipTokenAddress();
|
467
497
|
|
498
|
+
// wiring to external contracts
|
499
|
+
StakingStorage storage $ = _getStakingStorage();
|
500
|
+
$._protocolNftId = registry.getProtocolNftId();
|
501
|
+
$._store = StakingStore(stakingStoreAddress);
|
502
|
+
$._reader = StakingStore(stakingStoreAddress).getStakingReader();
|
503
|
+
$._tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
504
|
+
|
468
505
|
_initializeComponent(
|
469
506
|
authority,
|
470
507
|
registryAddress,
|
@@ -477,14 +514,6 @@ contract Staking is
|
|
477
514
|
"", // registry data
|
478
515
|
""); // component data
|
479
516
|
|
480
|
-
// wiring to external contracts
|
481
|
-
StakingStorage storage $ = _getStakingStorage();
|
482
|
-
$._protocolNftId = getRegistry().getProtocolNftId();
|
483
|
-
$._store = StakingStore(stakingStoreAddress);
|
484
|
-
$._reader = StakingStore(stakingStoreAddress).getStakingReader();
|
485
|
-
$._tokenRegistry = TokenRegistry(tokenRegistryAddress);
|
486
|
-
$._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(dipTokenAddress, authority);
|
487
|
-
|
488
517
|
_registerInterface(type(IStaking).interfaceId);
|
489
518
|
}
|
490
519
|
|
@@ -113,7 +113,8 @@ contract StakingService is
|
|
113
113
|
// transfer withdrawal amount to target owner
|
114
114
|
address instanceOwner = getRegistry().ownerOf(instanceNftId);
|
115
115
|
emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
|
116
|
-
|
116
|
+
_distributeToken(
|
117
|
+
$._staking.getTokenHandler(),
|
117
118
|
instanceOwner,
|
118
119
|
dipAmount);
|
119
120
|
}
|
@@ -161,11 +162,38 @@ contract StakingService is
|
|
161
162
|
emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
|
162
163
|
|
163
164
|
// collect staked dip by staking
|
164
|
-
|
165
|
-
|
165
|
+
_collectToken(
|
166
|
+
$._staking.getTokenHandler(),
|
167
|
+
stakeOwner,
|
166
168
|
dipAmount);
|
167
169
|
}
|
168
170
|
|
171
|
+
function _collectToken(
|
172
|
+
TokenHandler tokenHandler,
|
173
|
+
address from,
|
174
|
+
Amount amount
|
175
|
+
)
|
176
|
+
internal
|
177
|
+
virtual
|
178
|
+
{
|
179
|
+
tokenHandler.collectTokens(
|
180
|
+
from,
|
181
|
+
amount);
|
182
|
+
}
|
183
|
+
|
184
|
+
function _distributeToken(
|
185
|
+
TokenHandler tokenHandler,
|
186
|
+
address to,
|
187
|
+
Amount amount
|
188
|
+
)
|
189
|
+
internal
|
190
|
+
virtual
|
191
|
+
{
|
192
|
+
tokenHandler.pushToken(
|
193
|
+
to,
|
194
|
+
amount);
|
195
|
+
}
|
196
|
+
|
169
197
|
|
170
198
|
function stake(
|
171
199
|
NftId stakeNftId,
|
@@ -189,7 +217,8 @@ contract StakingService is
|
|
189
217
|
// collect staked dip by staking
|
190
218
|
if (dipAmount.gtz()) {
|
191
219
|
emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
|
192
|
-
|
220
|
+
_collectToken(
|
221
|
+
$._staking.getTokenHandler(),
|
193
222
|
stakeOwner,
|
194
223
|
dipAmount);
|
195
224
|
}
|
@@ -244,7 +273,8 @@ contract StakingService is
|
|
244
273
|
|
245
274
|
Amount rewardsClaimedAmount = $._staking.claimRewards(stakeNftId);
|
246
275
|
emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
|
247
|
-
|
276
|
+
_distributeToken(
|
277
|
+
$._staking.getTokenHandler(),
|
248
278
|
stakeOwner,
|
249
279
|
rewardsClaimedAmount);
|
250
280
|
}
|
@@ -268,8 +298,9 @@ contract StakingService is
|
|
268
298
|
|
269
299
|
Amount totalAmount = unstakedAmount + rewardsClaimedAmount;
|
270
300
|
emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
|
271
|
-
|
272
|
-
|
301
|
+
|
302
|
+
$._staking.getTokenHandler().pushToken(
|
303
|
+
stakeOwner,
|
273
304
|
totalAmount);
|
274
305
|
}
|
275
306
|
|
@@ -331,7 +362,7 @@ contract StakingService is
|
|
331
362
|
address stakingAddress
|
332
363
|
) = abi.decode(data, (address, address, address));
|
333
364
|
|
334
|
-
|
365
|
+
__Service_init(authority, registryAddress, owner);
|
335
366
|
|
336
367
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
337
368
|
$._registryService = RegistryService(_getServiceAddress(REGISTRY()));
|
@@ -388,7 +419,8 @@ contract StakingService is
|
|
388
419
|
emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
|
389
420
|
|
390
421
|
// collect reward dip from provider
|
391
|
-
|
422
|
+
_collectToken(
|
423
|
+
$._staking.getTokenHandler(),
|
392
424
|
rewardProvider,
|
393
425
|
dipAmount);
|
394
426
|
}
|
package/contracts/type/Key32.sol
CHANGED
@@ -28,8 +28,8 @@ library Key32Lib {
|
|
28
28
|
|
29
29
|
uint8 public constant TYPE_SHIFT = 31 * 8;
|
30
30
|
uint8 public constant ID_SHIFT = uint8(32 * 8 - TYPE_SHIFT);
|
31
|
-
bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); //
|
32
|
-
bytes32 public constant ID_MASK = bytes32(~TYPE_MASK); //
|
31
|
+
bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); // [32] byte in bytes32
|
32
|
+
bytes32 public constant ID_MASK = bytes32(~TYPE_MASK); // [0..31] bytes in bytes32
|
33
33
|
|
34
34
|
function toKey32(ObjectType objectType, KeyId id) public pure returns (Key32) {
|
35
35
|
uint256 uintObjectType = ObjectType.unwrap(objectType);
|
@@ -0,0 +1,62 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Key32} from "../type/Key32.sol";
|
5
|
+
|
6
|
+
// based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
|
7
|
+
library LibKey32Set {
|
8
|
+
|
9
|
+
struct Set {
|
10
|
+
Key32[] keys;
|
11
|
+
mapping(Key32 key => uint256 index) at;
|
12
|
+
}
|
13
|
+
|
14
|
+
error ErrorKey32SetAlreadyAdded(Key32 key);
|
15
|
+
error ErrorKey32SetNotInSet(Key32 key);
|
16
|
+
|
17
|
+
|
18
|
+
function add(Set storage set, Key32 key) external {
|
19
|
+
if (set.at[key] > 0) {
|
20
|
+
revert ErrorKey32SetAlreadyAdded(key);
|
21
|
+
}
|
22
|
+
|
23
|
+
set.keys.push(key);
|
24
|
+
set.at[key] = set.keys.length;
|
25
|
+
}
|
26
|
+
|
27
|
+
function remove(Set storage set, Key32 key) external {
|
28
|
+
uint256 nftIdIndex = set.at[key];
|
29
|
+
|
30
|
+
if (nftIdIndex == 0) {
|
31
|
+
revert ErrorKey32SetNotInSet(key);
|
32
|
+
}
|
33
|
+
|
34
|
+
uint256 toDeleteIndex = nftIdIndex - 1;
|
35
|
+
uint256 lastIndex = set.keys.length - 1;
|
36
|
+
|
37
|
+
if (lastIndex != toDeleteIndex) {
|
38
|
+
Key32 lastId = set.keys[lastIndex];
|
39
|
+
set.keys[toDeleteIndex] = lastId;
|
40
|
+
set.at[lastId] = nftIdIndex; // Replace lastValue's index to valueIndex
|
41
|
+
}
|
42
|
+
|
43
|
+
set.keys.pop();
|
44
|
+
delete set.at[key];
|
45
|
+
}
|
46
|
+
|
47
|
+
function isEmpty(Set storage set) external view returns(bool empty) {
|
48
|
+
return set.keys.length == 0;
|
49
|
+
}
|
50
|
+
|
51
|
+
function contains(Set storage set, Key32 key) external view returns(bool inSet) {
|
52
|
+
return set.at[key] > 0;
|
53
|
+
}
|
54
|
+
|
55
|
+
function size(Set storage set) external view returns(uint256 length) {
|
56
|
+
return set.keys.length;
|
57
|
+
}
|
58
|
+
|
59
|
+
function getElementAt(Set storage set, uint256 index) external view returns(Key32 key) {
|
60
|
+
return set.keys[index];
|
61
|
+
}
|
62
|
+
}
|
package/contracts/type/NftId.sol
CHANGED
@@ -76,4 +76,10 @@ library NftIdLib {
|
|
76
76
|
function toKeyId(NftId id) public pure returns (KeyId keyId) {
|
77
77
|
return KeyId.wrap(bytes31(uint248(NftId.unwrap(id))));
|
78
78
|
}
|
79
|
+
|
80
|
+
function toNftId(KeyId keyId) public pure returns (NftId nftId) {
|
81
|
+
uint248 keyIdInt = uint248(bytes31(KeyId.unwrap(keyId)));
|
82
|
+
assert(keyIdInt < type(uint96).max);
|
83
|
+
return NftId.wrap(uint96(keyIdInt));
|
84
|
+
}
|
79
85
|
}
|
@@ -48,78 +48,88 @@ function COMPONENT() pure returns (ObjectType) {
|
|
48
48
|
return ObjectType.wrap(11);
|
49
49
|
}
|
50
50
|
|
51
|
-
function
|
51
|
+
function ACCOUNTING() pure returns (ObjectType) {
|
52
52
|
return ObjectType.wrap(12);
|
53
53
|
}
|
54
54
|
|
55
|
-
function
|
55
|
+
function PRODUCT() pure returns (ObjectType) {
|
56
56
|
return ObjectType.wrap(13);
|
57
57
|
}
|
58
58
|
|
59
|
-
function
|
59
|
+
function FEE() pure returns (ObjectType) {
|
60
60
|
return ObjectType.wrap(14);
|
61
61
|
}
|
62
62
|
|
63
|
-
function
|
63
|
+
function ORACLE() pure returns (ObjectType) {
|
64
64
|
return ObjectType.wrap(15);
|
65
65
|
}
|
66
66
|
|
67
|
+
function DISTRIBUTION() pure returns (ObjectType) {
|
68
|
+
return ObjectType.wrap(16);
|
69
|
+
}
|
70
|
+
|
71
|
+
function POOL() pure returns (ObjectType) {
|
72
|
+
return ObjectType.wrap(17);
|
73
|
+
}
|
74
|
+
|
67
75
|
function APPLICATION() pure returns (ObjectType) {
|
68
|
-
return ObjectType.wrap(
|
76
|
+
return ObjectType.wrap(18);
|
69
77
|
}
|
70
78
|
|
71
79
|
function POLICY() pure returns (ObjectType) {
|
72
|
-
return ObjectType.wrap(
|
80
|
+
return ObjectType.wrap(19);
|
73
81
|
}
|
74
82
|
|
75
83
|
function PREMIUM() pure returns (ObjectType) {
|
76
|
-
return ObjectType.wrap(
|
84
|
+
return ObjectType.wrap(20);
|
77
85
|
}
|
78
86
|
|
79
87
|
function CLAIM() pure returns (ObjectType) {
|
80
|
-
return ObjectType.wrap(
|
88
|
+
return ObjectType.wrap(21);
|
81
89
|
}
|
82
90
|
|
83
91
|
function PAYOUT() pure returns (ObjectType) {
|
84
|
-
return ObjectType.wrap(
|
92
|
+
return ObjectType.wrap(22);
|
85
93
|
}
|
86
94
|
|
87
95
|
function RISK() pure returns (ObjectType) {
|
88
|
-
return ObjectType.wrap(
|
96
|
+
return ObjectType.wrap(23);
|
89
97
|
}
|
90
98
|
|
91
99
|
function PRICE() pure returns (ObjectType) {
|
92
|
-
return ObjectType.wrap(
|
100
|
+
return ObjectType.wrap(24);
|
93
101
|
}
|
94
102
|
|
95
103
|
function REQUEST() pure returns (ObjectType) {
|
96
|
-
return ObjectType.wrap(
|
104
|
+
return ObjectType.wrap(25);
|
97
105
|
}
|
98
106
|
|
99
107
|
function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
|
100
|
-
return ObjectType.wrap(
|
108
|
+
return ObjectType.wrap(26);
|
101
109
|
}
|
102
110
|
|
103
111
|
function DISTRIBUTOR() pure returns (ObjectType) {
|
104
|
-
return ObjectType.wrap(
|
112
|
+
return ObjectType.wrap(27);
|
105
113
|
}
|
106
114
|
|
107
115
|
function REFERRAL() pure returns (ObjectType) {
|
108
|
-
return ObjectType.wrap(
|
116
|
+
return ObjectType.wrap(28);
|
109
117
|
}
|
110
118
|
|
111
119
|
function BUNDLE() pure returns (ObjectType) {
|
112
|
-
return ObjectType.wrap(
|
120
|
+
return ObjectType.wrap(29);
|
113
121
|
}
|
114
122
|
|
115
123
|
function TARGET() pure returns (ObjectType) {
|
116
|
-
return ObjectType.wrap(
|
124
|
+
return ObjectType.wrap(30);
|
117
125
|
}
|
118
126
|
|
119
127
|
function STAKE() pure returns (ObjectType) {
|
120
|
-
return ObjectType.wrap(
|
128
|
+
return ObjectType.wrap(31);
|
121
129
|
}
|
122
130
|
|
131
|
+
|
132
|
+
|
123
133
|
/// @dev Object type that includes any other object type.
|
124
134
|
/// Note that eq()/'==' does not take this property into account.
|
125
135
|
function ALL() pure returns (ObjectType) {
|
@@ -202,6 +212,10 @@ library ObjectTypeLib {
|
|
202
212
|
return "Price";
|
203
213
|
} else if (objectType == BUNDLE()) {
|
204
214
|
return "Bundle";
|
215
|
+
} else if (objectType == RISK()) {
|
216
|
+
return "Risk";
|
217
|
+
} else if (objectType == ACCOUNTING()) {
|
218
|
+
return "Accounting";
|
205
219
|
}
|
206
220
|
|
207
221
|
// fallback: ObjectType<obect-type-int>
|
@@ -10,9 +10,12 @@ type RiskId is bytes8;
|
|
10
10
|
using {
|
11
11
|
eqRiskId as ==,
|
12
12
|
neRiskId as !=,
|
13
|
-
RiskIdLib.toKey32,
|
14
13
|
RiskIdLib.eq,
|
15
|
-
RiskIdLib.eqz
|
14
|
+
RiskIdLib.eqz,
|
15
|
+
RiskIdLib.gtz,
|
16
|
+
RiskIdLib.toInt,
|
17
|
+
RiskIdLib.toKeyId,
|
18
|
+
RiskIdLib.toKey32
|
16
19
|
} for RiskId global;
|
17
20
|
|
18
21
|
// general pure free functions
|
@@ -32,14 +35,19 @@ library RiskIdLib {
|
|
32
35
|
return RiskId.wrap(bytes8(0));
|
33
36
|
}
|
34
37
|
|
35
|
-
// @dev Converts a
|
38
|
+
// @dev Converts a risk id into a uint256.
|
39
|
+
function toInt(RiskId riskId) public pure returns (uint256) {
|
40
|
+
return uint64(RiskId.unwrap(riskId));
|
41
|
+
}
|
42
|
+
|
43
|
+
// @dev Converts a risk id string into a risk id.
|
36
44
|
function toRiskId(string memory risk) public pure returns (RiskId) {
|
37
45
|
return RiskId.wrap(bytes8(keccak256(abi.encode(risk))));
|
38
46
|
}
|
39
47
|
|
40
|
-
/// @dev Returns the key32 value for the specified
|
41
|
-
function toKey32(RiskId
|
42
|
-
return Key32Lib.toKey32(RISK(), toKeyId(
|
48
|
+
/// @dev Returns the key32 value for the specified risk id.
|
49
|
+
function toKey32(RiskId riskId) public pure returns (Key32 key) {
|
50
|
+
return Key32Lib.toKey32(RISK(), toKeyId(riskId));
|
43
51
|
}
|
44
52
|
|
45
53
|
/// @dev Returns the key id value for the specified nft id
|
@@ -47,6 +55,11 @@ library RiskIdLib {
|
|
47
55
|
return KeyId.wrap(bytes31(RiskId.unwrap(id)));
|
48
56
|
}
|
49
57
|
|
58
|
+
function toRiskId(KeyId keyId) public pure returns (RiskId riskId) {
|
59
|
+
riskId = RiskId.wrap(bytes8(KeyId.unwrap(keyId)));
|
60
|
+
assert(toInt(riskId) < 2**64);
|
61
|
+
}
|
62
|
+
|
50
63
|
function eq(RiskId a, RiskId b) public pure returns (bool isSame) {
|
51
64
|
return eqRiskId(a, b);
|
52
65
|
}
|
@@ -54,4 +67,8 @@ library RiskIdLib {
|
|
54
67
|
function eqz(RiskId a) public pure returns (bool isZero) {
|
55
68
|
return eqRiskId(a, zero());
|
56
69
|
}
|
70
|
+
|
71
|
+
function gtz(RiskId a) public pure returns (bool isZero) {
|
72
|
+
return uint64(RiskId.unwrap(a)) > 0;
|
73
|
+
}
|
57
74
|
}
|
@@ -54,6 +54,9 @@ 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 role assigned to release registry, release specfic to lock/unlock a release
|
58
|
+
function RELEASE_REGISTRY_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(4); }
|
59
|
+
|
57
60
|
//--- GIF core contract roles (range: 200 - 9'900) --------------------------//
|
58
61
|
// created and assigned during initial deployment for registry and staking
|
59
62
|
// granting for instances and components in instance service
|
@@ -93,7 +96,7 @@ library RoleIdLib {
|
|
93
96
|
uint64 public constant ALL_VERSIONS = 99;
|
94
97
|
uint64 public constant SERVICE_DOMAIN_ROLE_FACTOR = 100;
|
95
98
|
uint64 public constant COMPONENT_ROLE_FACTOR = 100;
|
96
|
-
uint64 public constant
|
99
|
+
uint64 public constant CUSTOM_ROLE_MIN_INT = 1000000;
|
97
100
|
|
98
101
|
/// @dev Converts the RoleId to a uint.
|
99
102
|
function zero() public pure returns (RoleId) {
|
@@ -112,7 +115,7 @@ library RoleIdLib {
|
|
112
115
|
|
113
116
|
/// @dev Converts an uint into a custom role id.
|
114
117
|
function toCustomRoleId(uint64 index) public pure returns (RoleId) {
|
115
|
-
return toRoleId(
|
118
|
+
return toRoleId(CUSTOM_ROLE_MIN_INT + index);
|
116
119
|
}
|
117
120
|
|
118
121
|
/// @dev Converts the role id to a uint.
|
@@ -54,11 +54,6 @@ function neTimestamp(Timestamp a, Timestamp b) pure returns (bool) {
|
|
54
54
|
return Timestamp.unwrap(a) != Timestamp.unwrap(b);
|
55
55
|
}
|
56
56
|
|
57
|
-
/// @dev Converts the uint256 to a Timestamp.
|
58
|
-
function toTimestamp(uint256 timestamp) pure returns (Timestamp) {
|
59
|
-
return TimestampLib.toTimestamp(timestamp);
|
60
|
-
}
|
61
|
-
|
62
57
|
// TODO move to TimestampLib and rename to zero()
|
63
58
|
/// @dev Return the Timestamp zero (0)
|
64
59
|
function zeroTimestamp() pure returns (Timestamp) {
|